c++ 面向对象基础Test——继承、重载、slice赋值
2014-09-19 22:34
609 查看
n
运行结果:
n
// CppTest1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <string> #include <iostream> #define PTLN(str) std::cout << "[" << str << "]" << "-------------------" << std::endl; #define PT(str) std::cout << str << std::endl; class Person { public: // 构造函数 Person() { PT("Person()"); } // 析构函数 virtual ~Person() { PT("~Person()"); } // 定义虚方法 virtual void fun() { PT("Person::fun()"); } // 定义方法 void fun0() { PT("Person::fun0()"); } }; class Fan : public Person { public: // 构造函数 Fan() { PT("Fan()"); } // 析构函数 virtual ~Fan() { PT("~Fan()"); } // 方法重载 virtual void fun() override { PT("Fan::fun()"); } // 方法覆盖 void fun0() { PT("Fan::fun0()"); } }; int _tmain(int argc, _TCHAR* argv[]) { Fan* f1 = new Fan(); PTLN(0) f1->fun0(); f1->fun(); PTLN(1) //------------------ Person* p1 = f1; p1->fun0(); p1->fun(); PTLN(2) //------------------ Person p2 = *f1; (&p2)->fun0(); (&p2)->fun(); PTLN(3) //------------------ delete f1; system("pause"); return 0; }
运行结果:
Person() Fan() [0]------------------- Fan::fun0() Fan::fun() [1]------------------- Person::fun0() Fan::fun() [2]------------------- Person::fun0() Person::fun() [3]------------------- ~Person() ~Fan() ~Person() 请按任意键继续. . .
n
相关文章推荐
- C++面向对象开发:继承、多态、重载及访问修饰符
- 黑马程序员——Java基础---面向对象代码块和继承和this和super和重写和重载和final
- c++基础 之 面向对象特征一 : 继承
- c++基础 之 面向对象特征一 : 继承
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- C++拷贝构造、临时对象、虚拟继承、重载、覆盖、隐藏
- C#面向对象基础--继承
- javascript 面向对象,实现namespace,class,继承,重载
- 《面向对象基础:C++实现》学习笔记之一
- C#面向对象基础(六) 继承
- Java面向对象基础---名词概念的理解:方法的重载、构造函数、封装性
- 嵌入式开发之C++基础学习笔记3--面向对象基础
- JavaSE 拾遗(5)——JavaSE 面向对象程序设计语言基础(5)...继承和多态
- C++总结之继承和面向对象的设计
- 《面向对象基础:C++实现》学习笔记之六
- c++(一) 类 对象 重载 继承 多态 构造函数 虚函数 覆盖 纯虚函数等
- 《面向对象基础:C++实现》学习笔记之五
- C++之面向对象学习基础一
- JAVA面向对象基础:成员变量、方法、方法的重载、构造函数
- 面向对象基础之二封装继承多态