C++/Class/Class Access — различия между версиями

Материал из C\C++ эксперт
Перейти к: навигация, поиск
м (1 версия: Импорт контента...)
 
м (1 версия: Импорт контента...)
 
(нет различий)

Текущая версия на 10:25, 25 мая 2010

Class with setter and displayer

  
#include <iostream>
#include <string.h>
using namespace std;
class movie 
{
public:
  char name[64];
  char first_star[64];
  char second_star[64]; 
  void show_movie(void)
    {
      cout << "Movie name: " << name << endl;
      cout << "Starring: " << first_star << " and " << second_star << endl << endl;
    }
  
  void initialize(char *movie_name, char *first, char *second)
    {
      strcpy(name, movie_name);
      strcpy(first_star, first);
      strcpy(second_star, second);
    }
};
int main(void)
{
   movie fugitive, sleepless;
   fugitive.initialize("A", "B", "C");
   sleepless.initialize("D", "E", "F");
   cout << fugitive.name << " and " << sleepless.name << endl;
   cout << fugitive.first_star << endl;
}


You may change access specifications as often as you like within a class declaration

 
#include <iostream>
#include <cstring>
using namespace std;
class Person {
  char name[80];                 // private by default
public:
  void setName(char *n);         // these are public
  void getName(char *n);
private:
  double wage;                   // now, private again
public:
  void setWage(double w);        // back to public
  double getWage();
};
void Person::setName(char *n)
{
  strcpy(name, n);
}
void Person::getName(char *n)
{
  strcpy(n, name);
}
void Person::setWage(double w)
{
  wage = w;
}
double Person::getWage()
{
  return wage;
}
int main()
{
  Person ted;
  char name[80];
  ted.setName("Ted Jones");
  ted.setWage(75000);
  ted.getName(name);
  cout << name << " makes $";
  cout << ted.getWage() << " per year.";
  return 0;
}