试图理解 C++ 结构
Trying to make sense of C++ Struct
在文件 f.h 中有以下结构:
struct Store{
Store();
~Store();
};
在这个结构中还有一行写着public:
。在文件 f.cpp 中使用函数 Store():
Store::Store(){
};
抱歉,这一切都含糊不清,我只想知道 Store()
和 ~Store()
部分的作用,public:
部分在结构中的意义,以及 f.cpp 中的部分实际上做了什么,因为我自己无法解决(我最近开始学习 CPP)
Store() 函数在您创建 Store 结构的实例时被调用,它被称为构造函数。 ~Store() 是相反的,它在您的实例被销毁时被调用,例如,在调用 delete 时。
对于这个结构,你可以设置函数,这些函数有访问修饰符。 Public 表示每个人都可以访问此函数(您可以在代码中的任何位置调用它)。
cpp 文件中的 Store::Store(){} 是您函数的定义,当您初始化 class 时,什么代码将 运行。可以设置变量,运行其他函数等等。
header 仅声明结构具有哪些功能,而 cpp 定义这些功能的作用。
all I want to know is what the Store()
and ~Store()
parts do
他们分别声明结构的构造函数和析构函数。
what the point of the public: part is in the struct
将它们声明为可公开访问,以便外部代码可以调用它们。
and also what the part in f.cpp actually does
实现了构造函数的主体代码。 .h文件中的代码只是声明。
首先,建议你在c++中使用class,除非它是C风格的结构:
// C++ Class
class Store {
public:
Store();
~Store();
};
// C-Style Struct
struct Store {
char *store_name;
}
我希望这能说明两者之间的区别,现在回答您的问题:
Store::Store() 是 class 的构造函数,用于初始化 class 中的数据。
Store::~Store() 是 class 的析构函数,用于释放分配的内存等
关键字 public 表示这些项目可在 class 之外使用。
默认情况下,所有结构成员都是 public.
关键字protected表示这些项目不能在class之外使用,但可以继承。
关键字 private 表示这些项目只能从 class 本身内部访问。
使用 class 定义的 C++ classes 中的成员默认是私有的。
在文件 f.h 中有以下结构:
struct Store{
Store();
~Store();
};
在这个结构中还有一行写着public:
。在文件 f.cpp 中使用函数 Store():
Store::Store(){
};
抱歉,这一切都含糊不清,我只想知道 Store()
和 ~Store()
部分的作用,public:
部分在结构中的意义,以及 f.cpp 中的部分实际上做了什么,因为我自己无法解决(我最近开始学习 CPP)
Store() 函数在您创建 Store 结构的实例时被调用,它被称为构造函数。 ~Store() 是相反的,它在您的实例被销毁时被调用,例如,在调用 delete 时。 对于这个结构,你可以设置函数,这些函数有访问修饰符。 Public 表示每个人都可以访问此函数(您可以在代码中的任何位置调用它)。 cpp 文件中的 Store::Store(){} 是您函数的定义,当您初始化 class 时,什么代码将 运行。可以设置变量,运行其他函数等等。 header 仅声明结构具有哪些功能,而 cpp 定义这些功能的作用。
all I want to know is what the
Store()
and~Store()
parts do
他们分别声明结构的构造函数和析构函数。
what the point of the public: part is in the struct
将它们声明为可公开访问,以便外部代码可以调用它们。
and also what the part in f.cpp actually does
实现了构造函数的主体代码。 .h文件中的代码只是声明。
首先,建议你在c++中使用class,除非它是C风格的结构:
// C++ Class
class Store {
public:
Store();
~Store();
};
// C-Style Struct
struct Store {
char *store_name;
}
我希望这能说明两者之间的区别,现在回答您的问题:
Store::Store() 是 class 的构造函数,用于初始化 class 中的数据。
Store::~Store() 是 class 的析构函数,用于释放分配的内存等
关键字 public 表示这些项目可在 class 之外使用。 默认情况下,所有结构成员都是 public.
关键字protected表示这些项目不能在class之外使用,但可以继承。
关键字 private 表示这些项目只能从 class 本身内部访问。 使用 class 定义的 C++ classes 中的成员默认是私有的。