• 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 }
  • 相关阅读:
    Javascript-DOM
    我的小站成长之路
    Reverse Proxy Vs Forward Proxy
    SSO-单点统一登录系统的设计与实现
    关于网络实名制
    LoggerOne
    AmpOne
    Get a handle on PHP Handlers
    Which PHP mode? Apache vs CGI vs FastCGI
    强制浏览器在点击回退按钮时重载刷新页面
  • 原文地址:https://www.cnblogs.com/jswu-ustc/p/8329654.html
Copyright © 2020-2023  润新知