我目前正在学习C ++。我在Java(我在大学学过)练习(大约2年)。
我在C ++中理解类和成员变量的概念时遇到了问题。 给出以下示例:
文件:Mems.h:
class Mems{
int n;
Mems();
};
文件Mems.cpp:
class Mems{
Mems::Mems(){
//Do something in constructor
}
};
我不知道,如果我想让它们坚持到对象,我必须把变量放在哪里:
当我在头文件中定义它们时,我无法在cpp文件中访问它们,反之亦然。
你可以给我一个暗示吗?答案 0 :(得分:5)
您无需在.cpp
文件中重新声明该类。您只需要实现其成员函数:
#include "Mems.h"
#include <iostream> // only required for the std::cout, std::endl example
Mems::Mems() : n(42) // n initialized to 42
{
std::cout << "Mems default constructor, n = " << n << std::endl;
}
请注意,通常您希望默认构造函数为public
。默认情况下,C ++类中的成员为private
,而结构中的成员为public
。
class Mems
{
public:
Mems();
private:
int n;
};
答案 1 :(得分:1)
class Mems
{
public:
int n;
Mems();
};
在这种情况下,n
是您的班级Mems
的成员变量。在课堂上,您可以像这样访问它:
Mems::Mems() //you don't actually need to use the class keyword in your .cpp file; just the class name, the double colon, and the method name is enough to mark this as a class method
{
//Do something in constructor
n = 5; //this sets the value of n within this instance of Mems
}
在Mems
课程之外,您可以访问任何公共成员变量,如下所示:
Mems myMems;
int myNum;
myMems.n = 10; //this sets the value of n in this instance of the Mems class
myNum = myMems.n; //this copies the value of n from that instance of the Mems class