2015-01-05 38 views
-4

感在文件f.h有以下结构:试图让C++结构

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

这里面结构也有它说public:线。在文件f.cpp功能商店()用于:

Store::Store(){ 
}; 

对不起,这一切是模糊的,所有我想知道的是什么Store()~Store()部分呢,public:部分的点是什么在结构中,以及f.cpp中的部分实际上做了什么,因为我在自己工作时遇到了问题(我最近开始学习CPP)

+4

我建议你在有特定问题时继续学习并提出问题。 – juanchopanza

+2

您可能会对StackOverflow中的[The Definitive C++ Book Guide and List](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)感兴趣,以帮助您学习C++ 。 通过在StackOverflow上询问每个问题,您将不会成功学习C++。这不是StackOverflow的目的。 – chwarr

回答

2

所有我想知道的是什么Store()~Store()部位做

它们分别宣布结构的构造析构函数

是公众的观点:一部分是在结构

为了尽可能公开宣布他们访问,以便外部的代码可以给他们打电话。

,也什么f.cpp部分实际上做

实现构造的机身​​码。 .h文件中的代码就是声明。

0

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

0

首先,建议你使用一个类在C++中,除非它是一个C风格的结构:

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

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

我希望说明了两者之间的区别,现在你的问题:

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

商店::-STORE()是类的析构函数是用来释放分配内存等

关键字public表明,这些项目可向班组长外使用。 默认情况下,所有结构成员都是公共的。

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

关键字private表示这些项目只能从类内部访问。 使用class定义的C++类中的成员默认是私有的。

+0

对不起,但我违反你的建议,并且当我希望在C++中公开默认访问时使用'struct'。一本好的C++书会帮助OP。 –

+0

任何优秀的C++书籍或教程都会建议您不要依赖类中的默认访问指示器。 –