试图理解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()
部分的作用
它们分别声明结构的构造函数和析构函数。
公众的意义:部分在结构中
将它们声明为可公开访问,以便外部代码可以调用它们。
以及 f.cpp 中的部分实际上做了什么
实现构造函数的主体代码。 .h 文件中的代码只是声明。
() 函数在创建 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++中的成员是私有的。
- 如何循环打印顶点结构
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 预处理器:插入结构名称中的前一个行号
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 孤立代码块在结构中引发异常
- 有什么方法可以遍历结构吗
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 无法将结构注册为增强几何体3D点
- 多成员Constexpr结构初始化
- C++将文本文件中的数据读取到结构数组中
- 如何重构类层次结构以避免菱形问题
- 如何在C++中序列化结构数据
- std::vector的包装器,使数组的结构看起来像结构的数组
- 没有为自己的结构调用列表推回方法
- 奇怪的结构&GCC&clang(void*返回类型)
- 在 c++ 中拥有一组结构的正确方法是什么?
- vscode g++链路故障:体系结构x86_64的未定义符号
- C++概念:如何使用'concept'检查模板化结构的属性?