C++ Tutorial/Class/accessor functions

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Accessor functions

#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;
 }
display.
5 years old.
display.

Access private data through accessor functions.

#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; 
}
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