C++学习笔记(六)

C++学习笔记

提示:本笔记是个人学习侯捷C++课程的总结笔记,欢迎来信指正批评!



提示:以下是本篇文章正文内容,下面案例可供参考

一、成员函数本质

class complex
{
public:
	double real() const
		{return this->re;}
private:
	double re,im;
};
complex c1,c2,c3;
cout<<c1.real();
cout<<c2.real();
/*其原理为*/
cout<<complex::real(&c1);	/*&c1、&c2就是成员函数的this指针*/
cout<<complex::real(&c2);	

静态数据是所有对象公用data,静态函数没有this指针。

二、static

class Account{
public:
	static double m_rate;
	/*静态函数无this指针,故处理数据时只能处理静态数据*/
	static void set_rate(const double& x)	{	m_rate=x;	}
};
/*给静态变量赋初值*/
double Account::m_rate=8.0;

int main(){
	Account::set_rate(5.0);		/*通过class name调用函数*/
	
	Account a;
	a.set_rate(7.0);			/*通过对象object调用static函数*/
	/*静态函数不会用this指针,不会有对象地址*/
}

静态函数无this指针,故处理数据时只能处理静态数据

三、设计模式Singleton

单体设计模式:只希望某个类有一个对象,外界无法创建。

class A{
public:
	/*外界通过函数获得唯一对象a*/
	static A& getInstance(	return a;	);
	setup()	{	……	}
private:
	/*不希望外界创造该对象,构造函数写成空*/
	A();
	A(const A& rhs);
	/*静态构造对象a*/
	static A a;
	……
};

四、模板

1.class template

template<typename T>
class complex
{
public:
	complex(T r=0,T i=0): re(r), im(i)	{}
	complex& operator += (const complex&);
	T real () const {return re;}
	T imag () const {return im;}
private:
	T re,im;
	
	friend complex& __doapl (complex*,const complex&);
};
{
	complex<double> c1(2.5,1.5);
	complex<int> c2(2,6);
};

2.function template

编译器会对function template进行引数推导

template <class T>
inline const T& min(const T& a,const T& b)
{
	return b<a ? b:a;
}
/*系统当判断到b<a时会调用b的类型定义中的操作符重载*/

五、namespace

namespace std
{
	……
]
using namespace std;		/*using directive*/
using std::cout;			/*using declaration*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值