A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FClass%2FPrivate</id>
		<title>C++/Class/Private - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FClass%2FPrivate"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Class/Private&amp;action=history"/>
		<updated>2026-04-17T11:59:44Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Class/Private&amp;diff=1352&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Class/Private&amp;diff=1352&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Class/Private&amp;diff=1353&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Class/Private&amp;diff=1353&amp;oldid=prev"/>
				<updated>2010-05-25T10:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Class combination with private fields==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;   &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Book &lt;br /&gt;
{&lt;br /&gt;
  public: &lt;br /&gt;
    Book(char *title) { strcpy(Book::title, title); } ;&lt;br /&gt;
    void show_book(void) { cout &amp;lt;&amp;lt; title; };  &lt;br /&gt;
    friend class Reader;&lt;br /&gt;
  private:&lt;br /&gt;
    char title[64];&lt;br /&gt;
};  &lt;br /&gt;
class Reader &lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    Reader(char *name) { strcpy(Reader::name, name); };&lt;br /&gt;
    void show_reader(class Book book) { &lt;br /&gt;
          cout &amp;lt;&amp;lt; &amp;quot;Reader: &amp;quot; &amp;lt;&amp;lt; name &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; &amp;quot;Book: &amp;quot; &amp;lt;&amp;lt; book.title; &lt;br /&gt;
    };&lt;br /&gt;
    void show_book(void) { cout &amp;lt;&amp;lt; &amp;quot;The book&amp;quot;s reader is &amp;quot; &amp;lt;&amp;lt; name &amp;lt;&amp;lt; endl; } ;&lt;br /&gt;
  private:&lt;br /&gt;
    char name[64];&lt;br /&gt;
};&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    Reader reader(&amp;quot;K&amp;quot;);&lt;br /&gt;
    Book favorite_book(&amp;quot;C&amp;quot;);&lt;br /&gt;
    reader.show_book();&lt;br /&gt;
    reader.show_reader(favorite_book);&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Keep the private on your own==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;   &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Base {&lt;br /&gt;
 public:&lt;br /&gt;
   Base(char *message) { strcpy(Base::message, message); }; &lt;br /&gt;
   void show_base(void) { cout &amp;lt;&amp;lt; message &amp;lt;&amp;lt; endl; };&lt;br /&gt;
 private:&lt;br /&gt;
   char message[256];&lt;br /&gt;
};&lt;br /&gt;
class Derived: public Base {&lt;br /&gt;
 public:&lt;br /&gt;
   Derived(char *dmsg, char *bmsg) : Base(bmsg) {&lt;br /&gt;
     strcpy(message, dmsg); &lt;br /&gt;
   };&lt;br /&gt;
   void show_derived(void) &lt;br /&gt;
   { &lt;br /&gt;
   cout &amp;lt;&amp;lt; message &amp;lt;&amp;lt; endl; &lt;br /&gt;
     show_base(); &lt;br /&gt;
   };&lt;br /&gt;
 private:&lt;br /&gt;
   char message[256];&lt;br /&gt;
};&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
   Base some_base(&amp;quot;This is a base&amp;quot;);&lt;br /&gt;
   Derived some_derived(&amp;quot;Derived message&amp;quot;, &amp;quot;Base message&amp;quot;);&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The size of the base class is &amp;quot; &amp;lt;&amp;lt; sizeof(some_base) &amp;lt;&amp;lt; &amp;quot; bytes&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The size of the derived class is &amp;quot; &amp;lt;&amp;lt; sizeof(some_derived) &amp;lt;&amp;lt; &amp;quot; bytes&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Private and protected member variables==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class MyClass {&lt;br /&gt;
  int a;           // private by default&lt;br /&gt;
protected:         // still private relative to MyClass&lt;br /&gt;
  int b;&lt;br /&gt;
public:&lt;br /&gt;
  int c; &lt;br /&gt;
  MyClass(int n, int m) { &lt;br /&gt;
     a = n; &lt;br /&gt;
     b = m; &lt;br /&gt;
  }&lt;br /&gt;
  int geta() { &lt;br /&gt;
     return a; &lt;br /&gt;
  }&lt;br /&gt;
  int getb() { &lt;br /&gt;
     return b; &lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass object(10, 20);&lt;br /&gt;
  object.c = 30; // OK, c is public&lt;br /&gt;
  cout &amp;lt;&amp;lt; object.geta() &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; object.getb() &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; object.c &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Private and public sections==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;   &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;iomanip&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Book &lt;br /&gt;
{&lt;br /&gt;
  public: &lt;br /&gt;
    char title[256];&lt;br /&gt;
    char author[64];&lt;br /&gt;
    float price;&lt;br /&gt;
    void show_title(void) { cout &amp;lt;&amp;lt; title &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;; };&lt;br /&gt;
    float get_price(void) { return(price); };&lt;br /&gt;
    void show_book(void) &lt;br /&gt;
    { &lt;br /&gt;
      show_title(); &lt;br /&gt;
      show_publisher();&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    void assign_publisher(char *name) { strcpy(publisher, name); };&lt;br /&gt;
  private:&lt;br /&gt;
    char publisher[256];&lt;br /&gt;
    void show_publisher(void) { cout &amp;lt;&amp;lt; publisher &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;; };&lt;br /&gt;
};&lt;br /&gt;
int main(void){&lt;br /&gt;
   Book bible; &lt;br /&gt;
  &lt;br /&gt;
   strcpy(bible.title, &amp;quot;A&amp;quot;);&lt;br /&gt;
   strcpy(bible.author, &amp;quot;B&amp;quot;);&lt;br /&gt;
   bible.price = 49.95;&lt;br /&gt;
   bible.assign_publisher(&amp;quot;C&amp;quot;);&lt;br /&gt;
   bible.show_book();&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Private and public variables and methods==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Person {&lt;br /&gt;
  char name[80];             // private by default&lt;br /&gt;
public:&lt;br /&gt;
  void setName(char *n); &lt;br /&gt;
  void getName(char *n);&lt;br /&gt;
private:&lt;br /&gt;
  double wage; &lt;br /&gt;
public:&lt;br /&gt;
  void setWage(double w); &lt;br /&gt;
  double getWage();&lt;br /&gt;
};&lt;br /&gt;
void Person::setName(char *n)&lt;br /&gt;
{&lt;br /&gt;
  strcpy(name, n);&lt;br /&gt;
}&lt;br /&gt;
void Person::getName(char *n)&lt;br /&gt;
{&lt;br /&gt;
  strcpy(n, name);&lt;br /&gt;
}&lt;br /&gt;
void Person::setWage(double w)&lt;br /&gt;
{&lt;br /&gt;
  wage = w;&lt;br /&gt;
}&lt;br /&gt;
double Person::getWage()&lt;br /&gt;
{&lt;br /&gt;
  return wage;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  Person ted;&lt;br /&gt;
  char name[80];&lt;br /&gt;
  ted.setName(&amp;quot;Joe&amp;quot;);&lt;br /&gt;
  ted.setWage(75000);&lt;br /&gt;
  ted.getName(name);&lt;br /&gt;
  cout &amp;lt;&amp;lt; name &amp;lt;&amp;lt; &amp;quot; makes $&amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; ted.getWage() &amp;lt;&amp;lt; &amp;quot; per year.&amp;quot;;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting member access levels==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
public:           &lt;br /&gt;
    MyClass(int level = 0);&lt;br /&gt;
    int GetLevel() const;&lt;br /&gt;
    void SetLevel(int level);&lt;br /&gt;
private:          &lt;br /&gt;
    int myLevel;&lt;br /&gt;
};&lt;br /&gt;
MyClass::MyClass(int level): myLevel(level)&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;A new object has been born!&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int MyClass::GetLevel() const&lt;br /&gt;
{&lt;br /&gt;
    return myLevel;&lt;br /&gt;
}&lt;br /&gt;
void MyClass::SetLevel(int level)&lt;br /&gt;
{&lt;br /&gt;
    if (level &amp;lt; 0)&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;You can&amp;quot;t set a level to a negative number.\n\n&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
        myLevel = level;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    MyClass myObject(5);&lt;br /&gt;
    cout &amp;lt;&amp;lt; myObject.GetLevel() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Calling SetLevel() with -1.\n&amp;quot;;&lt;br /&gt;
    myObject.SetLevel(-1);&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Calling SetLevel() with 9.\n&amp;quot;;&lt;br /&gt;
    myObject.SetLevel(9);&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Calling GetLevel(): &amp;quot; &amp;lt;&amp;lt; myObject.GetLevel() &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use public methods to access private fields==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;  &lt;br /&gt;
  using namespace std;  &lt;br /&gt;
  class Distance                  &lt;br /&gt;
  {  &lt;br /&gt;
     private:  &lt;br /&gt;
        const float MTF;          &lt;br /&gt;
        int feet;  &lt;br /&gt;
        float inches;  &lt;br /&gt;
     public:                      &lt;br /&gt;
        Distance() : feet(0), inches(0.0), MTF(3.28F)  &lt;br /&gt;
           {  }  &lt;br /&gt;
        explicit Distance(float meters) : MTF(3.28F){  &lt;br /&gt;
           float fltfeet = MTF * meters;  &lt;br /&gt;
           feet = int(fltfeet);  &lt;br /&gt;
           inches = 12*(fltfeet-feet);  &lt;br /&gt;
        }  &lt;br /&gt;
        void showdist()           &lt;br /&gt;
        { cout &amp;lt;&amp;lt; feet &amp;lt;&amp;lt; &amp;quot;\&amp;quot;-&amp;quot; &amp;lt;&amp;lt; inches &amp;lt;&amp;lt; &amp;quot;\&amp;quot;&amp;quot;; }  &lt;br /&gt;
  };  &lt;br /&gt;
  int main()  &lt;br /&gt;
  {  &lt;br /&gt;
     void fancyDist(Distance);    &lt;br /&gt;
     Distance dist1(2.35F);       &lt;br /&gt;
    &lt;br /&gt;
     dist1.showdist();  &lt;br /&gt;
    &lt;br /&gt;
     float mtrs = 3.0F;  &lt;br /&gt;
    &lt;br /&gt;
     return 0;  &lt;br /&gt;
  }  &lt;br /&gt;
  void fancyDist(Distance d){  &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;(in feet and inches) = &amp;quot;;  &lt;br /&gt;
     d.showdist();  &lt;br /&gt;
     cout &amp;lt;&amp;lt; endl;  &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>