c++中的struct和class的区别是啥??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中的struct和class的区别是啥??相关的知识,希望对你有一定的参考价值。

struct A

;

class A

;

它们2个都可以生成对象。。有啥区别啊??
3Q

在C++中都表示类,唯一的区别是默认的访问权限不同。struct默认的访问权限是public,class默认的访问权限是private。

测试代码:

#include <iostream>

struct A 
//相当于省略了public:
    void f() return;
;

class B 
//相当于省略了private:
    void f() return;
;

int main()

    A a;
    B b;
    a.f(); //成功调用
    b.f(); //出错
    return 0;

参考技术A 区别就是:struct如果不写访问权限的话,默认是public。而class默认是private,除此之外两者完全相同。本回答被提问者采纳 参考技术B 区别主要在于二者的访问权限,struct的默认访问权限是public,而已class则是private,另外struct不能像class那样继承 参考技术C 现在的C++编译器,会将struct转为class解释,所以这个层面没有区别。

struct默认成员访问权限public,class为private
参考技术D 只是数据的权限不同

struct和class在C++和C#中的区别

// C++和CShape struct和class的区别.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

int main()
{
   /*
   * 在C++中可以用struct和class来定义类型。这两种类型有什么区别?
   * 如果没有标明成员函数或者成员变量的访问权限级别,那么在struct中默认的是public,而在class中默认是private。
   * ========================================================================================================
   * 那在C#中呢?
   * C#和C++不一样。在C#中如果没有标明成员函数或者成员变量的访问权限级别,则在struct和class中都是private的。
   * struct和class的区别是:
   * struct定义的是值类型,值类型的实例在栈上分配内存;
   * 而class定义的是引用类型,引用类型的实例在堆上分配内存。
   */

	return 0;
}


以上是关于c++中的struct和class的区别是啥??的主要内容,如果未能解决你的问题,请参考以下文章

c++的类和结构体是啥关系

c++ Struct和Class的区别

struct和class在C++和C#中的区别

struct和class在C++和C#中的区别

C++中struct和class的区别

简述:struct和class的区别