我有一个我需要了解的C代码。有一个
typedef struct someStruct {
int i;
char c;
someStruct() {
i = 0;
c = 'c';
}
someStruct(char inpChar) {
i = 1;
c = inpChar;
}
} t_someStruct;
(我知道,代码并没有真正意义或服务于目的。我只是简化了它。) 所以有这个结构,它有两个成员(int i和char c)。有趣的是它基本上有两个构造函数,这对我来说是一个新概念。 它工作正常,但我们可以编写结构的构造函数吗?我在谷歌上找不到任何东西,也许我的搜索不对。
答案 0 :(得分:7)
答案 1 :(得分:3)
这段代码很可能是在C ++中。
在C ++中,struct
实际上类似于class
,因此可以为C ++中的结构定义构造函数。
尝试在gcc中编译代码。你会得到一个
error: expected specifier-qualifier-list before ‘someStruct’
答案 2 :(得分:0)
C和C ++之间的主要区别在于C ++支持类,但C不支持。在C ++中,struct是一个特殊的类,因此上面的代码可以在C ++中使用,但不能在C中使用。