试图理解C++结构

Trying to make sense of C++ Struct

本文关键字:C++ 结构      更新时间:2023-10-16

在文件 f.h 中有以下结构:

struct Store{
    Store();
    ~Store();
};

在这个结构中还有一行说public: .在文件 f.cpp 中使用函数 Store():

Store::Store(){
};

很抱歉这一切都含糊不清,我想知道的是Store()~Store()部分的作用,public:部分在结构中的意义是什么,以及 f.cpp 中的部分实际上做了什么,因为我自己很难解决它(我最近开始学习 CPP)

我想知道的是Store()~Store()部分的作用

它们分别声明结构的构造函数析构函数

公众的意义:部分在结构中

将它们声明为可公开访问,以便外部代码可以调用它们。

以及 f.cpp 中的部分实际上做了什么

实现构造函数的主体代码。 .h 文件中的代码只是声明。

Store

() 函数在创建 Store 结构的实例时被调用,它被称为构造函数。~Store() 则相反,它是在您的实例被销毁时调用的,例如,在调用 delete 时。对于此结构,您可以设置函数,这些函数获得了访问修饰符。公共意味着每个人都可以访问此函数(您可以在代码中的任何位置调用它)。cpp 文件中的 Store::Store(){} 是函数的定义,当你初始化类时将运行哪些代码。您可以设置变量,运行其他函数等。标头只是声明结构具有哪些功能,cpp 定义这些函数的作用。

首先,建议在 c++ 中使用类,除非它是 C 样式的结构:

// C++ Class
class Store {
  public:
    Store();
    ~Store();
};
// C-Style Struct
struct Store {
  char *store_name;
}

我希望这说明了两者之间的区别,现在回答您的问题:

Store:

:Store() 是用于初始化类中的数据的类的构造函数。

Store

::~Store() 是类的析构函数,用于释放分配的内存等。

关键字 public 指示这些项可在类外部使用。默认情况下,所有结构成员都是公共的。

关键字 protected 指示这些项不能在类外部使用,但可以继承。

关键字 private 指示这些项只能从类本身内部访问。默认情况下,使用类定义的类C++中的成员是私有的。