概念上的混乱
Conceptual confusion
这可能我可能是一个愚蠢的问题。但是我没有在程序中遇到概念问题。
我想通过包括CHILP。> 问题:当我在main中进行get_child() -> number_1时,以下问题不起作用。 解决方案:如果我将child.cpp包括在主中,然后嵌入式构造函数或如果我在孩子中声明构造函数。h而不是child.cpp 查询请求。这种行为的原因是什么?我可以在child.cpp中声明构造函数的一种方式 main.cpp child.h child.cpp #include <iostream>
#include "Child.h"
//#include "Child.cpp"
using namespace std;
int main(){
Child *pC = new Child();
cout << "direct = " << pC->number_1 << endl;
cout << "with function = " << get_Child()->number_1 << endl;
}
#ifndef CHILD_H_
#define CHILD_H_
class Child;
static Child * pointer_Child;
inline void save_Child(Child * p_C){
pointer_Child = p_C;
}
inline Child * get_Child(){
return pointer_Child;
}
class Child {
public:
Child();
//Child(){
// this ->set_Child();
//}
void set_Child(){
save_Child(this);
}
int number_1 = 10;
};
#endif /* CHILD_H_ */
#include "Child.h"
//inline Child::Child(){
// this ->set_Child();
//}
Child::Child(){
this->set_Child();
}
请勿在类似类的标题(外部)中声明静态变量:
static Child * pointer_Child;
它将在包含标头的每个编译单元中创建一个变量。而且它们无法从翻译单元外部访问。
相反,制作pointer_Child
extern
并在CPP中提供实现:
标题:
extern Child* pointer_Child;
cpp:
Child* pointer_Child;
,永远不会包括CPP文件。
- 表示"accepting anything for this template argument" C++概念的通配符
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- Linux的Cpp上的计时器
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在MSDOS编译器上,用大于最大值的值初始化int时输出混乱
- 常量指针上的混乱
- 是一个容器肯定是概念上的范围
- 谁能解释一下上面的代码是如何工作的以及使用哪个概念
- 写一个概念检查库,但在所有筹款算术类型上都失败了
- 将成员函数标记为 const 时,如果它在概念上不是
- 概念上的混乱
- 在安卓系统上使用opengles播放YUV视频后活动混乱
- 工会概念的混乱
- 复制列表初始化是否在概念上调用复制 ctor
- 概念检查器不会在 GCC 上编译,因为它'has no linkage'
- 购物车分配,getline()上的概念
- 如何在使用分配器概念时避免堆栈上的临时对象
- 是否有任何技术/概念上的原因boost::circular_buffer不支持移动赛门铁克?