标签:
我们知道大神们在设计C++时候就给C++有六个默认的函数,所谓默认就是,无需我们这些程序员们动手去写,只要你在将类实例化,即创建一个对象,在利用对象进行数据操作时候,就会编译器自动调用默认的函数,但是默认函数并不是C++希望我们使用的,真正强大的是我们在这些默认的基础之上,自己 DIY函数来实现默认函数所不能做到的和它能做到,只有这样才能将自己的功力大增。下面是我在编写C++ 函数时候产生的一些思考:
六个默认的函数依次是:
<pre name="code" class="cpp">/**********************************************************************
* * Copyright (c)2015,WK Studios
* * Filename: str.h
* * Compiler: GCC vc 6.0
* * Author:WK
* * Time: 2015 31 5
* **********************************************************************/
class S
{
public:
S(int i=0,double n=0):m_data(i),data(n)
{
cout<< this<<"\n";
}
private:
int m_data;
double data;
};
int main()
{
S s0; //1 //此时就是我们自定义了构造函数编译器就不会再调用默认的无参构造函数,
//如果想要这么做,必须自定义一个无参构造函数,或者自定义缺省的构造函数,
//就像上面函数的那样,也就是说如果么有缺省值,就会报错,因为找不到对应的构造函数
S(10);//2
S(10.8); //3
S((int)10.8);//4
S ss(10,20);//5
S ss1(10.8);//6
S ss2((int)10.8);//7
S s(10,10.8);//8 //调用了构造函数
S s22=(10,10.8);//9
S s1 = (10,10.8);//10
C++的强大之处不在于有多少默认缺省的封装的方法,而是,在与在满足这些基本函数的基础上给予编程者最大的创造空间。这些默认的函数只能保证C++的正常模式,在此基础之上有极大的接口空间来设计与实现方法
1.我们看一个程序
标签:
原文地址:http://blog.csdn.net/kai8wei/article/details/46279847