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?

  • 相关阅读:
    具有包含性列的索引
    SQLServer性能调优3之索引(Index)的维护
    千万级SQL Server数据库表分区的实现
    SQL Server表分区
    SQL Server 索引中include的魅力(具有包含性列的索引)
    Sql Server 性能优化之包含列
    SQL Server索引进阶第五篇:索引包含列 .
    spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable
    spring mvc传入参数不仅仅转换为json,还可以直接将json字符串转换为具体的java对象
    只要项目是maven构建的,pom.xml中依赖的jar包全都默认去你电脑本地仓库去找
  • 原文地址:https://www.cnblogs.com/yoyov5123/p/2938756.html
Copyright © 2011-2022 走看看