1、c和c++中struct的主要区别
c中的struct不可以含有成员函数,而c++中的struct可以。
C语言
c中struct 是一种用于组合多个不同数据类型的数据成员的方式。struct 声明中的成员默认是公共的,并且不支持成员函数、访问控制和继承等概念。C中的struct通常被用于将多个相关数据组合在一起,但没有类的其他功能。
struct Point {
int x;
int y;
};
int main() {
struct Point p1;
p1.x = 5;
p1.y = 3;
return 0;
}
C++
struct 是一种用于定义复合数据类型的方式,与C相似。然而,C++中的struct不仅可以包含数据成员,还可以包含成员函数、访问控制和继承等概念,与类(class)的功能非常接近。换句话说,C++中的struct和class的区别主要是默认的访问控制和继承方式不同。
struct Point {
int x;
int y;
void printCoordinates() {
std::cout << "x: " << x << ", y: " << y << std::endl;
}
};
int main() {
Point p1;
p1.x = 5;
p1.y = 3;
p1.printCoordinates();
return 0;
}
c中的struct不可以含有成员函数,而c++中的struct可以。文章来源:https://www.toymoban.com/news/detail-665813.html
2、c++中的struct与class的主要区别
c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private文章来源地址https://www.toymoban.com/news/detail-665813.html
// 使用 struct 定义
struct MyStruct {
int x; // 默认 public
void foo() { /* ... */ } // 默认 public
private:
int y; // 可以显式声明为 private
};
// 使用 class 定义
class MyClass {
int x; // 默认 private
void foo() { /* ... */ } // 默认 private
public:
int y; // 可以显式声明为 public
};
int main() {
MyStruct structObj;
structObj.x = 10; // 可以直接访问
structObj.foo(); // 可以直接访问
MyClass classObj;
// classObj.x = 10; // 错误,无法直接访问私有成员
// classObj.foo(); // 错误,无法直接访问私有成员
return 0;
}
到了这里,关于c与c++中struct的主要区别和c++中的struct与class的主要区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!