C++ Tutorial/Class/accessor functions — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
|
(нет различий)
|
Текущая версия на 13:29, 25 мая 2010
Accessor functions
<source lang="cpp">#include <iostream>
class MyClass { public: // begin public section int getInt(); // accessor function void setint (int age); // accessor function void display(); // general function private: // begin private section int itsAge; // member variable }; int MyClass::getInt() { return itsAge; } void MyClass::setint(int age) { itsAge = age; } void MyClass::display() { std::cout << "display.\n"; } int main() { MyClass obj; obj.setint(5); obj.display(); std::cout << obj.getInt() << " years old.\n"; obj.display(); return 0; }</source>
display. 5 years old. display.
Access private data through accessor functions.
<source lang="cpp">#include <iostream>
- include <cstring>
using namespace std;
class Shape {
// private double width; double height;
public:
void display() { cout << "Width and height are " << width << " and " << height << "\n"; } // accessor functions double getWidth() { return width; } double getHeight() { return height; } void setWidth(double w) { width = w; } void setHeight(double h) { height = h; }
};
// Triangle is derived from Shape. class Triangle : public Shape { public:
char style[20]; double area() { return getWidth() * getHeight() / 2; } void showStyle() { cout << "Triangle is " << style << "\n"; }
};
int main() {
Triangle t1; Triangle t2; t1.setWidth(4.0); t1.setHeight(4.0); strcpy(t1.style, "isosceles"); t2.setWidth(8.0); t2.setHeight(12.0); strcpy(t2.style, "right"); t1.showStyle(); t1.display(); cout << "Area is " << t1.area() << "\n"; t2.showStyle(); t2.display(); cout << "Area is " << t2.area() << "\n"; return 0;
}</source>
Triangle is isosceles Width and height are 4 and 4 Area is 8 Triangle is right Width and height are 8 and 12 Area is 48