初识C++(1)之内联函数、构造函数初始化列表、非成员函数操作符的重载、public与private

本文介绍了C++中的内联函数,解释了其在编译时替换函数以提高效率的作用。接着讨论了构造函数初始化列表的重要性,强调了初始化优于赋值的效率,并指出在某些情况下必须使用初始化列表。此外,文章还提及了非成员函数操作符的重载,以及public和private访问修饰符在保护类成员安全性上的应用。

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

先上自己的关于类的小代码:

#include <iostream>
using namespace std;

class complex
{
private:
    int re;
    int im;
public:
    complex(int r ,int i );
    ~complex();
    inline int real() const { return re;}
    inline int imag() const { return im;}
};

complex::complex(int r ,int i )
    : re (r),im (i)
{
}

complex::~complex()
{
}


ostream & operator<<(ostream &os,complex &n)
{
    os << n.real() << "+" << n.imag() << "i";
    return os; 
}

main()
{
    complex a(4,5);
    cout << a << endl;
    return 0;
}

 

内联函数:inline,给编译器建议将函数设置为内联函数,是否设置为内联函数由编译器决定。所谓内联函数就是在编译程序时,如果编译到内联函数,编译器会将函数的内容替代原函数,这样在执行程序时,直接就执行了语句,而不是调用函数。这样做的好处是,调用函数的代价很大,如果函数的内容很简单,就没有必要使用函数来封装,但是使用函数在编写程序时会很方便。此时使用内联函数就恰到好处。

构造函数初始化列表:17行与19行20行注释到的部分之间的区别在于,17行是对变量的初始化,19行20行是对变量的赋值。初始化的效率要优于赋值的效率,所以C++ 程序中尽量使用初始化列表。而且一些对象必须先初始化再来使用的情况,就必须写在初始化列表里。(这中情况之后再来讨论)

操作符的重载:操作符的重载主要分为成员函数,和非成员函数。这里写的是非成员函数,这样的操作符就好比是一种函数,函数的第一个形参就是操作符左边的对象,函数的第二个形参就是操作符右边的对象。对于成员函数来说情况不同,之后再来探讨。

public与private:private中的成员函数和成员变量只能被public中的成员函数调用。例如上述程序中,如果想取到类中re这个成员变量,a.re,这样写是错误的,a.real(),这样写就是正确的。private很好的保护了类中成员变量的安全性,所以对于重要的成员变量最好设为private.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值