Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;类方法定义语法 在C++中,有时在报头文件中声明类并定义CPP文件中的所有方法有时是一种好的做法。我理解这一点,但由此产生的一个结果似乎是,所有的类方法都没有在花括号中进行标记,而是在cpp文件中公开有没有办法在cpp文件中将类的方法分组在一起,同时仍在头文件中声明它们?我喜欢能够在IDE中折叠东西。。。我只是想解决这个问题,但我已经有一段时间没有在C++中编码任何东西了,我想知道有没有办法,我只是忘记了。< /P>_C++_Class_Syntax - Fatal编程技术网

C++;类方法定义语法 在C++中,有时在报头文件中声明类并定义CPP文件中的所有方法有时是一种好的做法。我理解这一点,但由此产生的一个结果似乎是,所有的类方法都没有在花括号中进行标记,而是在cpp文件中公开有没有办法在cpp文件中将类的方法分组在一起,同时仍在头文件中声明它们?我喜欢能够在IDE中折叠东西。。。我只是想解决这个问题,但我已经有一段时间没有在C++中编码任何东西了,我想知道有没有办法,我只是忘记了。< /P>

C++;类方法定义语法 在C++中,有时在报头文件中声明类并定义CPP文件中的所有方法有时是一种好的做法。我理解这一点,但由此产生的一个结果似乎是,所有的类方法都没有在花括号中进行标记,而是在cpp文件中公开有没有办法在cpp文件中将类的方法分组在一起,同时仍在头文件中声明它们?我喜欢能够在IDE中折叠东西。。。我只是想解决这个问题,但我已经有一段时间没有在C++中编码任何东西了,我想知道有没有办法,我只是忘记了。< /P>,c++,class,syntax,C++,Class,Syntax,为了明确我的意思,这里有一个例子: 测试h: 类测试{ 公众: 测试(INTX); 作废打印(); int x; }; test.cpp: #包括 #包括“test.h” 使用名称空间std; //类测试{ //公众: //测试(int x){ //这个->x=x; // } //作废打印(){ //cout x=x; } 无效测试::print(){ cout x; } int main(){ 测试t(100); t、 打印(); } 我想改为执行上面test.cpp中的注释,但这

为了明确我的意思,这里有一个例子:

测试h:

类测试{
公众:
测试(INTX);
作废打印();
int x;
};
test.cpp:

#包括
#包括“test.h”
使用名称空间std;
//类测试{
//公众:
//测试(int x){
//这个->x=x;
//     }
//作废打印(){
//cout x=x;
}
无效测试::print(){
cout x;
}
int main(){
测试t(100);
t、 打印();
}
我想改为执行上面test.cpp中的注释,但这不起作用,对吗?(我认为这就像声明一个不同于头文件中的类的新类?

您可以这样做:

==h.h==

namespace H_DEFS {
    class H {
    public:
       int A();
       int B();
    };
}
using namespace H_DEFS;
==h.cpp文件==

#include "h.h"
namespace H_DEFS {
   int H::A() { return 4;};
   int H::B() { return 5;};
}
==main.cpp==

#include "h.h"
int main() {
   return H().A() + H().B();
}

但是对于其他程序员来说,仅仅是为了IDE的好处而阅读是一个奇怪的习惯用法。

“……这不起作用,对吗?”是的,正确的。离线的方法定义(即,那些没有出现在正文中的那些)必须使用“C++::窗体”。C++不是java或C语言或其他任何东西。(对我来说,更大的语法麻烦是public/private不能应用于单个声明..或者像'static'或'private'这样的限定符不需要在定义和声明之间匹配,或者..:)private仅存在于定义中,它怎么可能与声明不匹配?你知道你可以拥有你想要的任意多个cpp文件吗?@user2864740,我不太清楚你的意思。你能详细说明一下吗?或者简单地将一个类的所有定义放在一个cpp文件中,其他所有内容放在另一个cpp文件中。这就是e非常大或中型的项目都可以。谢谢。我可能最终不会这么做。就像你说的,这是一个奇怪的习惯用法,只是为了IDE的好处。我更想知道什么是“正确”的方式来做,但似乎首选的方法是克服它?或者每个类只有一个文件?你更喜欢什么?