上帝懂编程?
构造器 : 是一个默认属性吗
析构器到底又是什么了:对前面所做的事情 进行清理;
构造器 -- 是一种特殊的方法, 它和普通方法的主要区别:
--构造器的名字必须和它所在类的的名字一样
--系统在创建 某个类的实例时会第一时间自动调用这个类的构造器
--构造器永远不会返回任何值
创建构造器
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
构造器:用来完成内存申请
析构器:用来完成 - -- 清道夫 的工作 ;析构器也永远不返回任何值 ; 复杂的类中, 析构器往往至关重要(可能引起内存泄露); 例如某个类的构造器申请了内存, 那我们就需要 …使用析构器 释放内存、
我是华丽分割线
割割割 木有小鸡鸡
这样听你来理解起来好简单的样子嘛
那么接下 ; 我们来讨论讨论; 在 继承机制中的构造器和析构器 这个比较麻烦啦 我们先跑个程序来试试吧
直观的程序上来
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 BaseClass14: {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?