c++构造函数

原创 2012年03月31日 09:39:13

1.

#include <iostream>
using namespace std;
class Myclass
{
public:
	Myclass(int n) { number = n; cout << "Myclass(int n)\n";}
	Myclass(Myclass &other)
	{
		number = other.number;
		cout<<"Myclass(Myclass &other) \n";
	}
	Myclass& operator = (const Myclass &a)//因为是引用,所以不用生成参数
	{
		this->number = a.number;
		cout << "operator \n";
		return *this;
	}
	//~Myclass()//对象到了其scope末尾时会调用析构函数
	//{
	//	cout << "deconstructor  " ;
	//}
private:
	int number;
};
Myclass fun(Myclass p)
{
	Myclass temp(p);
	return temp;
}

int main(void)
{
	Myclass obj1(10),obj2(0);
	Myclass obj3(obj1);
	Myclass obj4 = obj3;//实例化,调用的是复制构造函数
	obj2=obj3;//赋值,调用的是赋值操作符。
	fun(obj1);//先生成实参。生成实参的时候与下面的相同
	Myclass o = obj2;
	return 0;
}




1.函数在调用时要生成参数

2.实例化新对象时用的都构造函数,用 等号 实例化新对象时会调用复制构造函数

3.等号只能用于赋值


2

  http://blog.csdn.net/yijing21/article/details/4553021


用默认构造函数实例化对象时不能加括号,因为那样会被当作函数声明。


以前一直未注意 构造函数在构造默认对象时,如果无参数传递绝不应该加括号

class  TEST
{
public:
      TEST(int){}
      TEST(){}
      void fun(){}
};
 
int main()
{
     TEST t(10); //正确,传进参数10
     TEST t();  //原意是利用默认构造函数构造一个默认的对象,事实上相当于声明一个函数t(),返回值为TEST,编译自然通过
     t.fun();  //编译出错,t不是一个类或结构体
     return 0;
}
 



版权声明:本文为博主原创文章,未经博主允许不得转载。

C++的构造函数

构造函数用来初始化 和开辟空间
  • u010056396
  • u010056396
  • 2014年05月22日 21:57
  • 1227

c++构造函数之四种默认构造方式

c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初...
  • qq_28337005
  • qq_28337005
  • 2016年06月26日 17:33
  • 3058

浅谈C++中的几种构造函数

3月中旬参加宣讲会,做了X软公司的C++笔试题,里面有一道“默认拷贝构造函数的题”,由于好久没复习C++基础知识,当时连基本的概念都想不来了了。于是乎,开始拿起以前看的谭浩强C++复习起来,现在书快要...
  • zxc024000
  • zxc024000
  • 2016年04月14日 17:56
  • 7472

c++类的构造函数类型介绍及其特点

本人小白,最近刚开始学c++,正在在学习类,这里根据自己所学的,总结一下在类中很重要的一类成员函数-构造函数,有什么不对的地方或者说的不准确的地方欢迎各位指出类的分类大概可以分为三类,即默认构造函数,...
  • duang0626
  • duang0626
  • 2016年04月10日 21:33
  • 1641

C++构造函数实例讲解

构造函数一直看不懂,动手试了一次,总算懂了个一二。功夫不负有心人! #include using namespace std; //构造函数在对象生成的时候会被自动调用 //如果定义了构造函数,...
  • horseinch
  • horseinch
  • 2016年03月03日 19:56
  • 890

c++::让你足够了解构造函数和this指针

一、  this指针 【特性】 1、this指针的类型 类类型*const(类名*const),为右值 2、this指针并不是对象本身的一部分,不影响sizeof的结 果。 3、this的作...
  • lalu58
  • lalu58
  • 2016年10月17日 20:09
  • 3634

c++中六种构造函数的实现以及9中情况下,构造函数的调用过程

六种构造函数的实现代码如下: #include using namespace std; //c++中六种默认的构造函数 class Test { public: Test(int d = 0):...
  • ZongYinHu
  • ZongYinHu
  • 2015年06月02日 19:21
  • 1154

C++中子类构造函数写法总结

C++ 父类 子类 构造函数
  • zhaolianyun
  • zhaolianyun
  • 2015年04月25日 17:09
  • 6078

C++ 默认构造函数的重要性

1、默认构造函数 C++ 默认构造函数是对类中的参数提供默认值的构造函数,一般情况下,是一个没有参数值的空函数,也可以提供一些的默认值的构造函数,如果用户没有定义构造函数,那么编译器会给类提供一个默...
  • apacat
  • apacat
  • 2016年06月12日 15:37
  • 446

C++构造函数—构造函数的声明与定义、带参数的构造函数

构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象作初始化。那么,构造函数到底是什么样子的呢? 构造函数的声明与定义 在C++中,规定与类同名的成员函数就是构造函数。需要注意的是,...
  • u011923747
  • u011923747
  • 2014年03月06日 17:32
  • 2079
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++构造函数
举报原因:
原因补充:

(最多只允许输入30个字)