在C++中學習OOPS概念時,我遇到了本教程鏈接。 http://www.tutorialspoint.com/cplusplus/cpp_polymorphism.htm使用Constructor參數實例化一個類對象與不帶參數的*運算符之間的區別C++
在基類Shape
,它有兩個參數來設置其受保護的變量和main()
我想創建一個對象Shape
類的唯一方法是通過執行類似Shape shape(2,4)
給構造Shape
類匹配的構造。
有人可以說實例化Shape *shape
沒有任何參數的工作和創建對象之間的差異是什麼Shape shape(2,4)
和Shape *shape
。
#include <iostream>
using namespace std;
class Shape{
protected:
int w,h;
public:
Shape(int a, int b){
w=a;
h=b;
}
int area(){
cout << "Shape class area" << endl;
return 0;
}
};
class Rect:public Shape{
public:
Rect(int a, int b):Shape(a,b) {}
int area(){
cout <<"Rect class area " << endl;
return w*h;
}
};
class Tri:public Shape{
public:
Tri(int a, int b):Shape(a,b) {}
int area(){
cout << "Tri class area" << endl;
return (w*h)/2;
}
};
int main(){
Shape *shape;
Rect r(4,5);
Tri t(4,5);
shape=&r;
shape->area();
shape=&t;
shape->area();
return 0;
}
顯示你的代碼。 –
與其依靠人們閱讀鏈接的文章(當數年後有人發現此問題時可能不存在),請將相關代碼示例作爲問題的一部分發布,以便我們可以自行理解它。堆棧溢出不僅僅是爲了你現在需要的答案,而是其他人未來的相同問題。 –
道歉。在上面的第一個問題中添加了代碼。謝謝 – Gangadhar