,   CyberForum.ru

:( - C++


 
C++ . http://www.cyberforum.ru/cpp-beginners/thread84031.html
3 ( ) 2 ( ) 2 : 1) ; 2) ...
C++ : . .. 55: 2 3 5... http://www.cyberforum.ru/cpp-beginners/thread84026.html
C++
n- .
C++ ( )
: In.txt , . Out.txt ...
C++ http://www.cyberforum.ru/cpp-beginners/thread83999.html
, !!! , , , ( ,...
C++ !!! , 1) triangle, 9 , - `1`, - `2`, ..., ...

Aye Aye
367 / 281 / 36
: 17.12.2009
: 567
10.01.2010, 12:26
:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
class base{
      protected:
              char name[80];
      private:
              int i;
      public:
             base(){cout << "constracting base with default constructor\n"; i=5;};
             base(const char *p){cout << "constracting base ";strcpy(name,p); cout << name << endl;}
             ~base(){cout << "destructing base " << name << endl;}
             //virtual - ÷òî áû îáüÿâèòü, ÷òî f **ñëåäóåòñÿ â ê*÷åñòâå è*òåðôåéñ*.
             virtual int f(int j){cout << "using int f(int) from base\n";return j*j;}
             int get(){return i;}
};
 
class secondary: public base{
      private:
             // char name[80];// *å **äî ïîòîìó, ÷òî ó**ñëåäîâ**î ïîëå base::name;
             // ïîëå int i *å ó**ñëåäîâ***î.
             int x;
      public:
             secondary(const char *p){cout << "constracting secondary ";strcpy(name,p); cout << name << endl;x=3;}
             ~secondary(){cout << "destructing secondary " << name << endl;}
             int f(int i){cout << "using int f(int) from secondary\n"; return i*i*i;} //âîò ê*ê áû ïîëèìîðô**ÿ ôó*êöèÿ.
             //åñòü int base::f(int) è åñòü int secondary::f(int) - îä*î èìÿ, ð*ç*ûå ð*åëèç*öèè.
             int get(){return x;}
};
int main()
{
    {
          base *p=new secondary("ABC"); //áûë ñîçä** îáüåêò êë*ññ* secondary, è åãî ÷*ñòü êë*ññ* base òîæå áûë* ñîçä***.
           // p ññûëâ*åòñÿ ** òó ÷*ñòü îáüåêò*, êîòîð*ÿ ÿâëÿåòñÿ base, ýòî **çûâ*åò "ñðåç êë*ññ*".
          //åñëè secondary s, òî s ê*ê áû ñîñòîèò èç äâóõ ÷*ñòåé îä**(secondary) âêëþ÷*åò äðóãóþ(base);
          cout << "----\n";
          cout << p->f(5) << " " << p->get()<< endl;
          cout << "----\n";
          secondary *q;
          q=(secondary*)p; //p è q óê*çûâ*þò ** îäè* è òîò æå îáüåêò. ç*ìåòèì, î* *å èñïîðòèëñÿ ïîñëå ñðåç*
          cout << q->f(5) << " " << q->get() << " "<<q->base::get() << endl;
          cout << "----\n";
          delete p;
          cout << "----\n";
          cout << "now q\n";
          delete q;
    }
    cout <<"-------------------------------------\n";
    {
          secondary s("DEF");
          cout << "----\n";
          base *p=0;
          cout << "----\n";
          p=&s;
          cout << "----\n";
          delete p;
    }
    cout <<"-------------------------------------\n";
    {
          secondary *p=new secondary("GS");
          cout << "----\n";
          cout << p->f(5) << endl;
          cout << "----\n";
          delete p;
    }
    getch();
    return 0;
}


20
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <conio.h>
using namespace std;
 
class MyInterface{ //ýòîò êë*ññ îáåñïå÷èâ*åò è*òåðôåéñ (ò*ê ñê*ç*òü **áîð èìå* ôó*êöèé) äëÿ ðå*ëèç*öèè.
      public:
            virtual int get()=0;
            virtual void set(int)=0;
};
 
class MyClass1:public MyInterface{
      private:
              int info;
      public:
             MyClass1(){}
             int get(){return info;}
             void set(int i){info=i*i;}
};
class MyClass2:public MyInterface{
      private:
              int info;
      public:
             MyClass2(){}
             int get(){return info;}
             void set(int i){info=i+i;}
};
int main()
{
    MyInterface * p=new MyClass1();
    p->set(4);
    cout << p->get() << endl;
    delete p; //óä*ëèëè îáüåêò êë*ññ* MyClass1;
    //îä*è è òåæå èìå**, *î ð*ç**ÿ ðå*ëèç*öèÿ, ýòî è åñòü ïîëèìîðôèçì.
    p=new MyClass2();
    p->set(5);
    cout << p->get() << endl;
    delete p; //óä*ëèëè îáüåêò êë*ññ* MyClass2;
    getch();
    //        (MyClass1  MyClass2)    ,      , . .             .
    return 0;
}
0
 
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
@Mail.ru