C++ 类 - 使用公共变量并在类外定义成员函数
Posted
技术标签:
【中文标题】C++ 类 - 使用公共变量并在类外定义成员函数【英文标题】:C++ Class - using public variables and defining member functions outside class 【发布时间】:2017-01-14 06:00:39 【问题描述】:我定义了一个 C 类。我想将所有成员函数写入一个名为 C.cpp 的文件中,我知道该怎么做。我不知道的是:
如何在 main 中定义一个函数 f?我试过了:
C::f(arguments)
/*function definition*/
int main() /*code in main*/
在我定义类 C 的对象 P 之后,如何在我的 main 中访问和更改公共成员变量“x”,而不为此定义显式函数?我想做类似的事情
P.x = 5.67;
【问题讨论】:
点赞:P.x = 5.67;
.
【参考方案1】:
对于1.
,如果f
没有在C
类(即C.h
)中声明,则不能。你不能add
一个函数到一个类动态。
另外,如果 is 在 C.h
中声明并且也在 C.cpp
中定义,那么您试图复制它的定义,您也不能这样做。
如果它在C.h
中声明而在C.cpp
中没有定义,你可以在main 的文件中定义它,但不建议这样做(不好的做法)。最好将类的所有方法定义放在其.cpp
文件中。
对于 2,如果该成员在类的 public
部分中声明,您可以修改类 C
的对象的属性:
class C
... // private members
public: // public section
double x;
... // other public members, methods or attributes
;
在这种情况下,您可以在 main 中:
C P;
P.x = 5.67;
【讨论】:
" 不能动态地将函数添加到类中" 好词。很高兴跟踪你。 *** 没有它,所以我只能将你的名字保存在我电脑中的 txt 中。顺便说一句,很遗憾您的个人资料中没有提供信息(网络/邮件)。 @javaLover 这可能很快就会改变。 (有点个人原因atm)。 我可以在头文件本身中初始化变量吗?有没有什么严重的后果? @AnantJoshi 除了常量,不推荐在头文件中定义变量,是的,它有严重的影响。您只能在.h
中使用关键字extern
声明它们,并且在任何.cpp
文件中只定义它们中的每一个一次。以上是关于C++ 类 - 使用公共变量并在类外定义成员函数的主要内容,如果未能解决你的问题,请参考以下文章