发布网友
共3个回答
热心网友
typedef和class是两个不同的概念。typedef是一个关键字,用于给已有的数据类型起一个新的名字1。class是一个关键字,用于定义类,类是一种用户自定义的复合数据类型2。
如果您想把typedef改成class,您需要先定义一个类,然后用typedef给它起一个别名。例如:
//定义一个结构体
struct ST { char dept[20]; char docname[20]; char patient[20]; int bh; };
//用typedef给结构体起一个别名
typedef struct ST ST;
//等价于
//定义一个类
class ST { public: char dept[20]; char docname[20]; char patient[20]; int bh; };
//用typedef给类起一个别名
typedef class ST ST;
注意:类和结构体的区别在于默认的访问控制。结构体的默认访问控制是public,而类的默认访问控制是private2。因此,在使用类时,需要显式地指定成员变量或函数为public或private。
希望这能帮到您
热心网友
如果你有一个使用`typedef`定义的类型,例如:
```c++
typedef int myType;
```
你可以将其转换为一个类(class)的定义,例如:
```c++
class myType {
public:
int value;
};
```
这个类有一个公共的成员变量`value`,它的类型为`int`,可以用来代替原来的`typedef`定义。但需要注意的是,这两种定义方式的语义是不同的,因为`typedef`定义的是一种类型别名,而`class`定义的是一个类,它可能包含更多的成员变量和成员函数。
如果你需要在某些地方使用原来的`typedef`定义,可以将它定义为类的一个静态成员变量,例如:
```c++
class myType {
public:
static const int value = 0;
};
```
这样你就可以使用`myType::value`来代替原来的`myType`了。当然,这种做法可能会影响原有代码的兼容性,因此需要谨慎考虑。
热心网友
C++中的 struct 和 class 基本是通用的,唯有几个细节不同:
使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。
class 继承默认是 private 继承,而 struct 继承默认是 public 继承。
class 可以使用模板,而 struct 不能。
因此从C到C++并不需要把struct改成class