相关疑难解决方法(0)

typedef struct vs struct definitions

我是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)

c struct typedef

763
推荐指数
10
解决办法
66万
查看次数

我的枚举不是类或命名空间

嗨,我有名为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 ++)

有任何想法吗?谢谢托马斯

c++ enums g++ c++11

59
推荐指数
3
解决办法
5万
查看次数

C++传递枚举作为参数

如果我有一个像这样的简单类用于卡:

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类型的变量?

c++ parameters enums

11
推荐指数
2
解决办法
5万
查看次数

标签 统计

c++ ×2

enums ×2

c ×1

c++11 ×1

g++ ×1

parameters ×1

struct ×1

typedef ×1