c++的oop之class和struct

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/18035747



c++中的面向对象

构造函数#

与C#一样,可以拥有多个构造函数,但python只有一个构造函数

默认的无参构造函数,可以这样写 classname() = default;

构造函数时初始化变量,建议这样写。对于const或自定义类型必须这样写,而对于内置类型几乎是一样的。

Copy
MyClass::MyClass(string name,int id): name(name), id_(id) { Player::init(); }

C++中类的构造函数,成员变量是在初始化列表初始化还是在函数体中进行赋值? - 知乎 (zhihu.com)

函数的声明#

成员函数的声明可以写在类的外面,只需要加上classname::xxx,而不像C#必须写在类的内部。

一般都是在h文件中声明,cpp中实现

类的生命周期#

创建

拷贝

销毁 ~classname()

friend友元#

friend class xxx ,在一个class的内部再定义一个class,或者单纯的定义单个class

friend友元,可以让外部访问private的字段和函数

关于class和stuct#

在C#中这两者有差别挺大,主要是:C#中class是引用类型,而stuct是值类型,到c++中,只有访问类型的区别:stuct的属性全是public 而class可以有private,其它并无区别,从c++ primer看到。

经过实践,c++中如果实例化一个class,那么他仍然不是引用类型,只有指针是引用类型。


FAQ#

Q:为什么很多代码中都是使用struct而不是class?

A:根据实际用途来决定

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(72)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2014-02-27 VS 扩展推荐
点击右上角即可分享
微信分享提示
CONTENTS