C++学习笔记(一)

本文介绍了C++中头文件的防卫式声明防止重复包含,模板类的使用,以及类的构造函数、常量成员函数、参数传递和返回值的方法。还讨论了友元和操作符重载的概念,强调了引用传递的效率优势和操作符重载的成员与非成员函数区别。
摘要由CSDN通过智能技术生成

头文件的书写格式

 

(eg. complex.h):

#ifndef _COMPLEX_
#define _COMPLEX_

(防卫式声明,防止重复的include动作)

class template

template<typename T>

class complex
{
    privete:
         T re , im;
}

通过T来告诉编译器,目前没有想好是什么内容,需要在使用类定义的时候指明:

complex<double>...
complex<int>...

构造函数

函数在class本体内定义即为inline函数,性能较好。

创建对象时,构造函数会自动调用。构造函数的函数名称一定和类的名称相同,并且函数的参数是可以有默认值的,创建时若没有指明值则根据默认值进行构造。

complex(double r=0 , double i=0):re(r),im(i){}

上述写法比在函数体中进行赋值的效率更高。

Note : 构造函数可以没有返回值。

不带指针的类多半不需要写析构函数。

构造函数可以有很多个(重载)

//成员函数
double real() const{return re;}

void real(double r) {re=r;} //注意!不能有const

在函数名后加const为常量成员函数,不会改变数据内容的函数需要加上const。

Note : const 也可以出现在对象和变量的前面,如果const对象调用的成员函数没有加const会导致编译错误。

参数传递与返回值

值传递/引用传递(to const)

总的来说,引用传递的效率远远高于值传递,所以参数传递两种方式都可以的话,尽量选择引用传递。

返回值的传递也有值和引用两类。

友元 friend

友元打破了封装,可以自由取得friend的private成员。

相同class的各个objects互为友元。

 

操作符重载

1. 成员函数 this

 谁调用操作符,谁就是this,在参数列表中不能写this,但是在函数体内可以直接用,

2. 非成员函数 无this 

通过三个函数来应对使用者的三种可能用法,全域函数无this。

之所以没有返回引用,是因为它们返回的值必定是局部对象,所以不能返回引用。(注意)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值