指针是存储另一个变量地址的变量,称为指针。
基类的指向派生类的不同对象的指针:
方法:
- 派生类是从其基类获取一些属性的类。
- 确实,一个类的指针可以指向其他类,但是类必须是基类和派生类,然后才有可能。
- 要访问基类的变量,将使用基类指针。
- 因此,指针是基类的类型,并且由于指针是基类,因此它可以访问基类的所有公共函数和变量,这称为绑定指针。
- 在此指针中,基类归基类所有,但指向派生类对象。
- 同样适用于派生类指针,值已更改。
下面是C++程序,用于说明指向派生类的基类指针的实现:
C++
// C++ program to illustrate the
// implementation of the base class
// pointer pointing to derived class
#include
using namespace std;
// Base Class
class BaseClass {
public:
int var_base;
// Function to display the base
// class members
void display()
{
cout << "Displaying Base class"
<< " variable var_base: " << var_base << endl;
}
};
// Class derived from the Base Class
class DerivedClass : public BaseClass {
public:
int var_derived;
// Function to display the base
// and derived class members
void display()
{
cout << "Displaying Base class"
<< "variable var_base: " << var_base << endl;
cout << "Displaying Derived "
<< " class variable var_derived: "
<< var_derived << endl;
}
};
// Driver Code
int main()
{
// Pointer to base class
BaseClass* base_class_pointer;
BaseClass obj_base;
DerivedClass obj_derived;
// Pointing to derived class
base_class_pointer = &obj_derived;
base_class_pointer->var_base = 34;
// Throw an error
base_class_pointer->display();
base_class_pointer->var_base = 3400;
base_class_pointer->display();
DerivedClass* derived_class_pointer;
derived_class_pointer = &obj_derived;
derived_class_pointer->var_base = 9448;
derived_class_pointer->var_derived = 98;
derived_class_pointer->display();
return 0;
}
输出:
Displaying Base class variable var_base: 34
Displaying Base class variable var_base: 3400
Displaying Base classvariable var_base: 9448
Displaying Derived class variable var_derived: 98
结论:
- 指向派生类的指针是指向派生类的基类的指针,但是它将保持其外观。
- 基类的指针将能够调整其自身类的函数和变量,并且仍然可以指向派生类对象。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。