关于c++的初接触
2017-10-31 20:05
176 查看
c++最重要的就是多态。就如同c最重要的是指针一样。
c++多态表现形式主要有函数重载、运算符重载和虚函数等,其中函数重载、运算符重载是静态多态,虚函数是动态多态。也就是说c++中运行时的多态性主要是通过虚函数来实现的,而编译器时的多态性是由函数重载和运算符重载来实现的。
//#include <iostream>
//using namespace std;
//
//class Base
//{
//public:
// Base(int a):m_a(a){};
// void display(){cout<<m_a<<endl;}
//protected:
// int m_a;
//};
//
//class Derived:public Base
//{
//public:
// Derived(int a,int b):Base(a),m_b(b){};
// void display(){cout<<m_a<<","<<m_b<<endl;};
//private:
// int m_b;
//};
//
//int main()
//{
// Base a(10);
// a.display();
//
// Base a1(20);
// a=a1;
// a1.display();
//
// Derived b(100,100);
// b.display();
//
//
// system("pause");
// return 0;
//}
上述代码关键就是把m_a设为了protected类型的了,在类外无法使用,所以在类中使用Base(int a)来使类外也能用到m_a;这种方法在我们以后使用别人的代码时,可以间接访问一些受保护的变量。
c++多态表现形式主要有函数重载、运算符重载和虚函数等,其中函数重载、运算符重载是静态多态,虚函数是动态多态。也就是说c++中运行时的多态性主要是通过虚函数来实现的,而编译器时的多态性是由函数重载和运算符重载来实现的。
//#include <iostream>
//using namespace std;
//
//class Base
//{
//public:
// Base(int a):m_a(a){};
// void display(){cout<<m_a<<endl;}
//protected:
// int m_a;
//};
//
//class Derived:public Base
//{
//public:
// Derived(int a,int b):Base(a),m_b(b){};
// void display(){cout<<m_a<<","<<m_b<<endl;};
//private:
// int m_b;
//};
//
//int main()
//{
// Base a(10);
// a.display();
//
// Base a1(20);
// a=a1;
// a1.display();
//
// Derived b(100,100);
// b.display();
//
//
// system("pause");
// return 0;
//}
上述代码关键就是把m_a设为了protected类型的了,在类外无法使用,所以在类中使用Base(int a)来使类外也能用到m_a;这种方法在我们以后使用别人的代码时,可以间接访问一些受保护的变量。
相关文章推荐
- 关于c++异常的初接触try{}catch{}
- 打通 C++ 和 C# 关于 COM 组件互相调用的任督二脉
- 关于C++中的引用
- 关于c++析构函数要不要加virtual的问题
- Dmitry Kakurin和Linus Torvalds关于C++的辩论来回帖子
- c++高级---c语言中关于运算符优先级和运算符集合顺序的理解(*p++和*++p的区别)
- C++中关于将fstream对象作为函数参数传递相关问题说明
- 【软件技巧】关于mindmanager 2012安装后报C++错误的解决方法
- 关于C++ const 的全面总结
- 关于C++的强制类型转换浅析
- 关于C++兼容C,C++在linux程序设计API的调用等问题
- 关于C++ 的无名对象
- c++学习之--关于编译预处理
- C++ 关于sort
- 关于C++ const 的全面总结
- C++关于system
- C++重载(关于const的重载)
- 关于C++ const 的全面总结
- 关于C++ const 的全面总结
- 关于C++ const 的全面总结