C++ 结构体和类

本文回顾了C++中的结构体和类的区别,包括默认访问控制属性。类的成员默认为私有,而结构体的成员默认为公共。尽管C++引入结构体主要是为了兼容C,但在某些场景下,如组合不同类型数据,结构体的公共成员特性使其更方便。文章还讨论了构造函数和析构函数的作用,它们分别用于对象创建时的初始化和对象销毁时的资源回收。最后,介绍了函数重载的概念,强调参数类型和个数的不同是构成重载的必要条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++ 很久未用,有些遗忘,现在再复习一下。。。。。

链接是孙鑫老师的MFC视频,里面有讲C++

https://www.bilibili.com/video/av45920128/?p=2


首先是结构体:

#include <iostream.h>
//#include <iostream>

//using namespace std; //注释的地方和未注释的是一样的效果,
struct Point{ //C语言结构体中是不可以有函数存在,而C++可以
    public:
    int x;
    int y;
    void output(){
        cout<<x<<endl<<y<<endl;
    }
};
 
void main(){
    Point pt;
    pt.x=5;
    pt.y=5;
    //cout<<pt.x<<endl<<pt.y<<endl;
    pt.output();
}

 然后是class 类

#include <iostream.h>
class Point{ 
	public:
	int x;
	int y;
	void init
### C++ 中将结构体作为的成员变量 在 C++ 中,结构体(`struct`)(`class`)非常相似,都可以包含数据成员成员函数。当希望在一个中封装多个不同型的数据时,可以考虑使用结构体作为该的一部分。 #### 定义结构体并将其设为的成员 为了实现这一点,首先需要定义一个结构体,之后可以在另一个内部声明此结构体型的成员变量。下面是一个具体的例子: ```cpp // 定义一个简单的结构体用于存储书籍信息 struct Book { std::string title; std::string author; }; // 创建一个图书馆管理系统的简化版本,其中Book被用作Library中的私有成员 class Library { private: // 将结构体设置成的一个属性 Book book; public: // 构造函数初始化book对象 Library(const std::string& title, const std::string& author) : book{title, author} {} // 获取书本的信息 void getBookInfo() const { std::cout << "Title: " << book.title << ", Author: " << book.author << '\n'; } }; ``` 上述代码展示了如何创建 `Book` 结构体以及如何让其成为 `Library` 的一员[^1]。这里还提供了构造函数来初始化这个结构体实例,并提供了一个公共接口 (`getBookInfo`) 来访问这些信息。 #### 初始化列表的应用 值得注意的是,在上面的例子中,构造函数采用了初始化列表的方式对结构体进行了赋值操作。这是因为在某些情况下直接在构造函数体内给成员变量赋值可能会导致效率低下或逻辑错误;而采用初始化列表则能更高效地完成这项工作[^4]。 #### 访问控制与封装原则 由于面向对象编程强调良好的封装性,因此通常建议把结构体放在内的适当位置(比如私有部分),并通过公有的方法对外界暴露必要的功能,从而保护数据的安全性一致性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值