试图理解C ++ Struct

时间:2015-01-05 22:50:01

标签: c++ struct

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

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

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

Store::Store(){
};

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

3 个答案:

答案 0 :(得分:2)

  

我想知道的是Store()~Store()部分的作用<​​/ p>

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

  

公众的意义:部分在结构

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

  

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

首先,建议您使用c ++中的类,除非它是C风格的结构:

// C++ Class
class Store {
  public:
    Store();
    ~Store();
};

// C-Style Struct
struct Store {
  char *store_name;
}

我希望这能说明两者之间的区别,现在问题是:

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

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

关键字public表示这些项目可在课堂外使用。 默认情况下,所有struct成员都是公共的。

关键字protected表示这些项目不能在课外使用,但可以继承。

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