zoukankan      html  css  js  c++  java
  • 构造器 和析构器 完全困了

    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?

  • 相关阅读:
    DC中为什么要用Uniquify?
    hdu 1596 find the safest road
    hdu2112 HDU Today
    hdu 2066 一个人的旅行
    poj 3026 Borg Maze
    poj 1979 Red and Black
    poj 1321 棋盘问题
    hdu 1010 Tempter of the Bone
    hdu 4861 Couple doubi
    codeforces584B Kolya and Tanya
  • 原文地址:https://www.cnblogs.com/yoyov5123/p/2938756.html
Copyright © 2011-2022 走看看