我是C编程的初学者,但我想知道typedef在定义结构时使用与使用结构之间有什么区别typedef.在我看来,实际上没有区别,他们实现了同样的目标.
struct myStruct{
int one;
int two;
};
Run Code Online (Sandbox Code Playgroud)
与
typedef struct{
int one;
int two;
}myStruct;
Run Code Online (Sandbox Code Playgroud) 嗨,我有名为MyCode.h和MyCode.cpp的文件
在我已经声明的MyCode.h中
enum MyEnum {Something = 0, SomethingElse = 1};
class MyClass {
MyEnum enumInstance;
void Foo();
};
Run Code Online (Sandbox Code Playgroud)
然后在MyCode.cpp中:
#include "MyCode.h"
void MyClass::Foo() {
enumInstance = MyEnum::SomethingElse;
}
Run Code Online (Sandbox Code Playgroud)
但是当用g ++编译时,我得到错误'MyEnum'不是类或命名空间......
(在MS VS2010中工作正常,但不是linux g ++)
有任何想法吗?谢谢托马斯
如果我有一个像这样的简单类用于卡:
class Card {
public:
enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES };
Card(Suit suit);
};
Run Code Online (Sandbox Code Playgroud)
然后我想在另一个文件中创建一个卡的实例如何通过枚举?
#include "Card.h"
using namespace std;
int main () {
Suit suit = Card.CLUBS;
Card card(suit);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误:此范围内未声明'Suit'
我知道这有效:
#include "Card.h"
using namespace std;
int main () {
Card card(Card.CLUBS);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是如何在另一个文件中创建Suit类型的变量?