zoukankan      html  css  js  c++  java
  • copy构造函数(拷贝构造函数)

    C++里面初始化一个对象的时候需要调用构造函数,而用一个对象去初始化另外一个对象的时候则是调用拷贝构造函数。

    拷贝构造函数的作用:用一个对象来初始化另外一个对象(注意:初始化和赋值是两种完全不同的操作)

     1 //myteacher.h文件
     2 #pragma once
     3 class myteacher
     4 {
     5 public:
     6     myteacher(void);
     7     myteacher(const myteacher&);
     8     myteacher(int a,const char* n);
     9     ~myteacher(void);
    10     void printT(void);
    11 
    12 private:
    13     int age;
    14     char name[32];
    15 };
    16 
    17 
    18 //myteacher.cpp文件
    19 #include "myteacher.h"
    20 #include <string.h>
    21 #include <iostream>
    22 
    23 //不带参的构造函数
    24 myteacher::myteacher(void)
    25 {
    26     age=18;
    27     strcpy(name,"Li");
    28 }
    29 //带参的构造函数
    30 myteacher::myteacher(int a,const char* n)
    31 {
    32     age=a;
    33     strcpy(name,n);
    34 }
    35 //copy构造函数(拷贝构造函数)
    36 myteacher::myteacher(const myteacher& T)
    37 {
    38     age=T.age;
    39     strcpy(name,T.name);
    40 }
    41 
    42 void myteacher::printT()
    43 {
    44     std::cout<<age<<std::endl;
    45     std::cout<<name<<std::endl;
    46 }
    47 
    48 
    49 myteacher::~myteacher(void)
    50 {
    51 }
    52 
    53 
    54 //main函数文件
    55 #include<iostream>
    56 #include "myteacher.h"
    57 
    58 using namespace std;
    59 
    60 int main()
    61 {
    62     myteacher t1(25,"Wu");//调用构造函数,用指定的参数初始化t1
    63 
    64     myteacher t2;//调用构造函数,用默认的参数初始化t1
    65     t2=t1; //赋值操作,不调用任何构造函数(拷贝构造函数也属于构造函数)
    66 
    67     myteacher t3(t1);//调用拷贝构造函数,用t1的参数去初始化t3
    68 
    69     system("pause");
    70     return 0;
    71 }
  • 相关阅读:
    嵌入式GUI FTK介绍(7)主题
    嵌入式GUI FTK介绍(2)两个小应用程序
    嵌入式GUI FTK介绍(8)编译/运行PC模拟版本
    嵌入式GUI FTK介绍(5)在多平台上运行
    嵌入式GUI FTK介绍(4)脚本语言绑定
    嵌入式GUI FTK介绍(3)XML界面描述语言
    活动图
    ASP.NET程序中常用的三十三种代码
    Server的Transfer和Response的Redirect (转)
    .net 点击刷新验证码问题
  • 原文地址:https://www.cnblogs.com/jswu-ustc/p/8329654.html
Copyright © 2011-2022 走看看