这是我第一次尝试在单独的头文件中分离类但我收到错误。请帮帮我。谢谢 的 CODE:
我的主要职能:
#include <iostream>
#include <MyClass>
int MyClass::data;
int main()
{
cout<<"data="<<MyClass::data;
system("pause");
return 0;
}
MyClass.h
#ifndef MyClass
#define <MyClass>
class MyClass
{
static int data_;
};
#endif
错误:致命错误C1083:无法打开包含文件:'MyClass.h':没有此类文件或目录
答案 0 :(得分:5)
你应该使用
#include "MyClass.h"
尖括号用于系统标题。
也是data
或data_
?
还有更好的东西,比如
#if !defined(MYCLASS_H_INCLUDED)
#define MYCLASS_H_INCLUDED
...
#endif
#define
- 与类名相同的名称将成为问题的根源
答案 1 :(得分:2)
在C ++中分离定义和实现的第一个好主意。由于您的标头不是系统标头,因此#include
指令应使用"
而非<
>
。或者您的标题不在与cpp文件相同的目录中。
这是另一个话题,但OO不仅仅是使用一些类。在类中封装静态变量并不会降低它们的全局性......至少它们有另一个命名空间......
答案 2 :(得分:0)
使用#include“Myclass.h”而不是#include