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++ 类 - 使用公共变量并在类外定义成员函数的主要内容,如果未能解决你的问题,请参考以下文章

C++模板类中的成员函数以及模板函数在类外定义的方式

C++中static函数类外定义的时候为啥不写static?

C++面向对象:静态成员和静态成员函数

c++

C++类中的静态成员函数以及静态成员变量

C++类中的静态成员函数以及静态成员变量