上帝懂编程?
构造器 : 是一个默认属性吗
析构器到底又是什么了:对前面所做的事情 进行清理;
构造器 -- 是一种特殊的方法, 它和普通方法的主要区别:
--构造器的名字必须和它所在类的的名字一样
--系统在创建 某个类的实例时会第一时间自动调用这个类的构造器
--构造器永远不会返回任何值
创建构造器
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 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?