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%2FStruct_Class</id>
		<title>C++/Class/Struct Class - История изменений</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%2FStruct_Class"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Class/Struct_Class&amp;action=history"/>
		<updated>2026-04-16T22:16:11Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Class/Struct_Class&amp;diff=1310&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/Struct_Class&amp;diff=1310&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/Struct_Class&amp;diff=1311&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/Struct_Class&amp;diff=1311&amp;oldid=prev"/>
				<updated>2010-05-25T10:25:30Z</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;==add method to struct==&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;
struct Msg &lt;br /&gt;
{&lt;br /&gt;
  char message[256];&lt;br /&gt;
  void show_message(void); &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct UpperMsg &lt;br /&gt;
{&lt;br /&gt;
   char message[256];&lt;br /&gt;
   void show_message(void); &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void Msg::show_message(void)&lt;br /&gt;
{&lt;br /&gt;
   cout &amp;lt;&amp;lt; message;&lt;br /&gt;
}&lt;br /&gt;
void UpperMsg::show_message(void)&lt;br /&gt;
{&lt;br /&gt;
   cout &amp;lt;&amp;lt; strupr(message);&lt;br /&gt;
}&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
   Msg book = { &amp;quot;C\n&amp;quot; };&lt;br /&gt;
   UpperMsg book_upr = { &amp;quot;P\n&amp;quot; };&lt;br /&gt;
   book.show_message();&lt;br /&gt;
   book_upr.show_message();&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;
==Classes and Structures are Related==&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;
struct MyClass {  &lt;br /&gt;
  int get_i(void); // these are public by default  &lt;br /&gt;
  void put_i(int j); &lt;br /&gt;
private:  &lt;br /&gt;
  int i;  &lt;br /&gt;
} ;  &lt;br /&gt;
     &lt;br /&gt;
int MyClass::get_i(void)  &lt;br /&gt;
{  &lt;br /&gt;
  return i;  &lt;br /&gt;
}  &lt;br /&gt;
     &lt;br /&gt;
void MyClass::put_i(int j)  &lt;br /&gt;
{  &lt;br /&gt;
  i = j;  &lt;br /&gt;
}  &lt;br /&gt;
     &lt;br /&gt;
main(void)  &lt;br /&gt;
{  &lt;br /&gt;
  MyClass s;  &lt;br /&gt;
     &lt;br /&gt;
  s.put_i(10);  &lt;br /&gt;
  cout &amp;lt;&amp;lt; s.get_i();  &lt;br /&gt;
     &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;
==Constructor and destructor inside a struct==&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;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
struct StringClass {&lt;br /&gt;
  StringClass(char *ptr);&lt;br /&gt;
  ~StringClass();&lt;br /&gt;
  void show();&lt;br /&gt;
private:&lt;br /&gt;
  char *p;&lt;br /&gt;
  int len;&lt;br /&gt;
};&lt;br /&gt;
StringClass::StringClass(char *ptr)&lt;br /&gt;
{&lt;br /&gt;
  len = strlen(ptr);&lt;br /&gt;
  p = (char *) malloc(len+1);&lt;br /&gt;
  if(!p) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Allocation error\n&amp;quot;;&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  strcpy(p, ptr);&lt;br /&gt;
}&lt;br /&gt;
StringClass::~StringClass()&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Freeing p\n&amp;quot;;&lt;br /&gt;
  free(p);&lt;br /&gt;
}&lt;br /&gt;
void StringClass::show()&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; p &amp;lt;&amp;lt; &amp;quot; - length: &amp;quot; &amp;lt;&amp;lt; len;&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  StringClass stringObject1(&amp;quot;www.java2s.com.&amp;quot;), stringObject2(&amp;quot;www.java2s.com.&amp;quot;);&lt;br /&gt;
  stringObject1.show();&lt;br /&gt;
  stringObject2.show();&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;
==Stack class using a structure.==&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;
#define SIZE 10&lt;br /&gt;
struct stack { &lt;br /&gt;
  stack();            &lt;br /&gt;
  void push(char ch); &lt;br /&gt;
  char pop();         &lt;br /&gt;
private:&lt;br /&gt;
  char stackData[SIZE]; &lt;br /&gt;
  int topOfStack;       &lt;br /&gt;
};&lt;br /&gt;
stack::stack()&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Constructing a stack\n&amp;quot;;&lt;br /&gt;
  topOfStack = 0;&lt;br /&gt;
}&lt;br /&gt;
void stack::push(char ch)&lt;br /&gt;
{&lt;br /&gt;
  if(topOfStack==SIZE) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Stack is full\n&amp;quot;;&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  stackData[topOfStack] = ch;&lt;br /&gt;
  topOfStack++;&lt;br /&gt;
}&lt;br /&gt;
char stack::pop()&lt;br /&gt;
{&lt;br /&gt;
  if(topOfStack==0) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Stack is empty\n&amp;quot;;&lt;br /&gt;
    return 0; // return null on empty stack &lt;br /&gt;
  }&lt;br /&gt;
  topOfStack--;&lt;br /&gt;
  return stackData[topOfStack];&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  stack stackObject1, stackObject2; &lt;br /&gt;
  int i;&lt;br /&gt;
  stackObject1.push(&amp;quot;a&amp;quot;);&lt;br /&gt;
  stackObject2.push(&amp;quot;x&amp;quot;);&lt;br /&gt;
  stackObject1.push(&amp;quot;b&amp;quot;);&lt;br /&gt;
  stackObject2.push(&amp;quot;y&amp;quot;);&lt;br /&gt;
  stackObject1.push(&amp;quot;c&amp;quot;);&lt;br /&gt;
  stackObject2.push(&amp;quot;z&amp;quot;);&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;Pop stackObject1: &amp;quot; &amp;lt;&amp;lt; stackObject1.pop() &amp;lt;&amp;lt; endl;&lt;br /&gt;
  for(i = 0; i &amp;lt;3; i++) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;Pop stackObject2: &amp;quot; &amp;lt;&amp;lt; stackObject2.pop() &amp;lt;&amp;lt; endl;&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;
==use struct to initialize a class==&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;
struct BookInfo {&lt;br /&gt;
  char title[64];&lt;br /&gt;
  char publisher[64];&lt;br /&gt;
  char author[64];&lt;br /&gt;
  float price;&lt;br /&gt;
  int pages;&lt;br /&gt;
};&lt;br /&gt;
class BookStuff {&lt;br /&gt;
  public:&lt;br /&gt;
    BookStuff(char *title, char *publisher, char *author);&lt;br /&gt;
    BookStuff(struct BookInfo);&lt;br /&gt;
    void show_book(void) &lt;br /&gt;
  { cout &amp;lt;&amp;lt; &amp;quot;Book: &amp;quot; &amp;lt;&amp;lt; title &amp;lt;&amp;lt; &amp;quot; by &amp;quot; &amp;lt;&amp;lt;&lt;br /&gt;
        author &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &amp;quot;Publisher: &amp;quot; &amp;lt;&amp;lt; publisher &amp;lt;&amp;lt; endl; };&lt;br /&gt;
  private:&lt;br /&gt;
    char title[64];&lt;br /&gt;
    char author[64];&lt;br /&gt;
    char publisher[64];&lt;br /&gt;
};&lt;br /&gt;
BookStuff::BookStuff(char *title, char *publisher, char *author)&lt;br /&gt;
 {&lt;br /&gt;
   strcpy(BookStuff::title, title);&lt;br /&gt;
   strcpy(BookStuff::publisher, publisher);&lt;br /&gt;
   strcpy(BookStuff::author, author);&lt;br /&gt;
 }&lt;br /&gt;
BookStuff::BookStuff(BookInfo book)&lt;br /&gt;
{&lt;br /&gt;
   strcpy(BookStuff::title, book.title);&lt;br /&gt;
   strcpy(BookStuff::publisher, book.publisher);&lt;br /&gt;
   strcpy(BookStuff::author, book.author);&lt;br /&gt;
}&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
   BookInfo book = {&amp;quot;T&amp;quot;, &amp;quot;J&amp;quot;, &amp;quot;a&amp;quot;, 29.95, 256 };&lt;br /&gt;
   BookStuff big_book(&amp;quot;C&amp;quot;, &amp;quot;P&amp;quot;,&amp;quot;K&amp;quot;);&lt;br /&gt;
   BookStuff little_book(book);&lt;br /&gt;
   big_book.show_book();&lt;br /&gt;
   little_book.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;
==Using a class instead of struct.==&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 i;// private by default  &lt;br /&gt;
public:  &lt;br /&gt;
  int get_i(void);  &lt;br /&gt;
  void put_i(int j);  &lt;br /&gt;
} ;  &lt;br /&gt;
     &lt;br /&gt;
int MyClass::get_i(void)  &lt;br /&gt;
{  &lt;br /&gt;
  return i;  &lt;br /&gt;
}  &lt;br /&gt;
     &lt;br /&gt;
void MyClass::put_i(int j)  &lt;br /&gt;
{  &lt;br /&gt;
  i = j;  &lt;br /&gt;
}  &lt;br /&gt;
     &lt;br /&gt;
main(void)  &lt;br /&gt;
{  &lt;br /&gt;
  MyClass s;  &lt;br /&gt;
     &lt;br /&gt;
  s.put_i(10);  &lt;br /&gt;
  cout &amp;lt;&amp;lt; s.get_i();  &lt;br /&gt;
     &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;
==Using a structure to define a class.==&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;
&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;
struct StringStructClass {&lt;br /&gt;
  void initString(char *s); // public&lt;br /&gt;
  void displayString();&lt;br /&gt;
private:                  // private&lt;br /&gt;
  char str[255];&lt;br /&gt;
} ;&lt;br /&gt;
void StringStructClass::initString(char *s)&lt;br /&gt;
{&lt;br /&gt;
  if(!*s) &lt;br /&gt;
      *str = &amp;quot;\0&amp;quot;; // initialize string&lt;br /&gt;
  else &lt;br /&gt;
      strcat(str, s);&lt;br /&gt;
}&lt;br /&gt;
void StringStructClass::displayString()&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; str &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  StringStructClass stringObject;&lt;br /&gt;
  stringObject.initString(&amp;quot;&amp;quot;);          &lt;br /&gt;
  stringObject.initString(&amp;quot;Hello &amp;quot;);&lt;br /&gt;
  stringObject.initString(&amp;quot;there!&amp;quot;);&lt;br /&gt;
  stringObject.displayString();&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;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>