求大神帮我把结构体改成类

发布网友

我来回答

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 基本是通用的,唯有几个细节不同:

因此从C到C++并不需要把struct改成class

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com