mirror of
https://github.com/Light-City/CPlusPlusThings.git
synced 2026-04-04 03:00:21 +08:00
support bazel complie this project and format code.
This commit is contained in:
53
codingStyleIdioms/1_classInitializers/1.1_nest.cpp
Normal file
53
codingStyleIdioms/1_classInitializers/1.1_nest.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
/* 1.1_类之间嵌套.cpp */
|
||||
//
|
||||
// Created by light on 19-12-9.
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
|
||||
class Animal {
|
||||
public:
|
||||
Animal() {
|
||||
std::cout << "Animal() is called" << std::endl;
|
||||
}
|
||||
|
||||
Animal(const Animal &) {
|
||||
std::cout << "Animal (const Animal &) is called" << std::endl;
|
||||
}
|
||||
|
||||
Animal &operator=(const Animal &) {
|
||||
std::cout << "Animal & operator=(const Animal &) is called" << std::endl;
|
||||
return *this;
|
||||
}
|
||||
|
||||
~Animal() {
|
||||
std::cout << "~Animal() is called" << std::endl;
|
||||
}
|
||||
};
|
||||
|
||||
class Dog {
|
||||
public:
|
||||
// 第一种: 使用初始化列表。
|
||||
Dog(const Animal &animal) : __animal(animal) {
|
||||
std::cout << "Dog(const Animal &animal) is called" << std::endl;
|
||||
}
|
||||
// 第二种:构造函数赋值来初始化对象。
|
||||
// Dog(const Animal &animal) {
|
||||
// __animal = animal;
|
||||
// std::cout << "Dog(const Animal &animal) is called" << std::endl;
|
||||
// }
|
||||
~Dog() {
|
||||
std::cout << "~Dog() is called" << std::endl;
|
||||
}
|
||||
|
||||
private:
|
||||
Animal __animal;
|
||||
};
|
||||
|
||||
int main() {
|
||||
Animal animal;
|
||||
std::cout << std::endl;
|
||||
Dog d(animal);
|
||||
std::cout << std::endl;
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user