构造器 和析构器 --完全困了

MJLN7WRH$GADWF~Q]S)@NM2MJLN7WRH$GADWF~Q]S)@NM2[3]MJLN7WRH$GADWF~Q]S)@NM2[8]我大摇大摆的来了

上帝懂编程?

{EH5V39EEZZD%_VE]Y4L](Q

构造器 : 是一个默认属性吗

析构器到底又是什么了:对前面所做的事情 进行清理;

 

构造器 -- 是一种特殊的方法, 它和普通方法的主要区别:

--构造器的名字必须和它所在类的的名字一样

--系统在创建 某个类的实例时会第一时间自动调用这个类的构造器

--构造器永远不会返回任何值

 

    星星创建构造器

class Car
{
Car(void):
}
 
 
星星定义构造器:注意大小写与类名保持一致,在结束声明之后开始定义构造器本身:
  1: Car::Car(void)// 不用写void Car::Car(void)
  2: {
  3: color ="WHITE";
  4: engine="V8";
  5: wheel =4;
  6: gas_tank =FULL_GAS;
  7: }

 

构造对象数组:万能的数组 Car mycar[10] ;

调用语法依旧是;  mycar[x].running 

image

 

构造器:用来完成内存申请

析构器:用来完成  - -- 清道夫 的工作  ;析构器也永远不返回任何值 ; 复杂的类中, 析构器往往至关重要(可能引起内存泄露); 例如某个类的构造器申请了内存, 那我们就需要 …使用析构器 释放内存、

 

我是华丽分割线


割割割 木有小鸡鸡


 

这样听你来理解起来好简单的样子嘛

F_2L~DXU`AYDLK@DL3R{L(P

那么接下 ; 我们来讨论讨论; 在 继承机制中的构造器和析构器   这个比较麻烦啦 我们先跑个程序来试试吧

image

 

image

直观的程序上来

  1: #include <iostream>
  2: #include <string>
  3: using namespace std;
  4: 
  5: class  BaseClass
  6: {
  7: public:
  8: BaseClass();
  9: ~BaseClass();
 10: void dosomething();	
 11: };
 12: 
 13: class SubClass:public BaseClass
 14: {
 15: 	public:
 16: 	SubClass();
 17: 	~SubClass();
 18: }; 
 19: 
 20: 
 21: 
 22: void BaseClass::BaseClass()
 23: {
 24: 	cout<<"进入基类构造器";
 25: 	cout<<"我在基类构造器 里面干了某些事"; 
 26: }
 27: 
 28:  BaseClass::~BaseClass( )
 29: {
 30: 	cout<<"进入  基类  析构器 ";
 31: 	cout<<"我在  基类  析构器  里面干了某些事 也干了某些事";
 32: } 
 33: 
 34:  void BaseClass::dosomething( )
 35: {
 36: 	cout<<"我干了某些事.....";
 37: }
 38: 
 39:  SubClass::SubClass( )
 40: {
 41: 	cout<<"进入  子类 构造器 ";
 42: 	cout<<"我在  子类  构造器  里面干了某些事";
 43: }
 44:  SubClass::~SubClass( )
 45: {
 46: 	cout<<"进入  子类  析构器 ";
 47: 	cout<<"我在  子类  析构器  里面干了某些事 也干了某些事";
 48: } 
 49: 
 50: int main(int argc, char *argv[])
 51: {
 52: 	SubClass subclass;
 53: 	subclass.dosomething();
 54: 	cout<<"完事收工 结束啦 ";
 55: 	return 0;
 56: }

恼怒 有错误 不能编译通过  错误内容

 

[Error]  error: return type specification for constructor invalid

how to fix it?

posted @ 2013-03-01 15:02  搅着青春吹泡泡  阅读(154)  评论(0编辑  收藏  举报