Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Требуется помощь в С++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Требуется помощь в С++
Имя
Сообщение << Старые топики   Новые топики >>
Требуется помощь в С++ - 2012-01-12 03:10:54.743333   
Wind1

Сообщений: 161
Оценки: 0
Присоединился: 2010-02-21 16:10:15.206666
Всем привет. Ребят помогите плиз.
Вот код:

#include <windows.h>
#include "iostream"
#include "conio.h"
using namespace std;
double r,l,s,s2,o;

class okrujnost
{
protected:

public:
void okr()
{l=2*3.14*r;
cout<<l<<endl<<endl;
}

}a;

class krug:public okrujnost
{protected:
public:

void kr()
{s=2*r*l;
cout<<s<<endl<<endl;}

}b;

class sfera:public krug
{protected:
public:
void sf()
{s2=s*4;
cout<<s2<<endl<<endl;}
}
c;

class shar:public sfera
{protected:
public:
void oo()
{o=s2/3*r;
cout<<o<<endl<<endl;}
}d;

int main()
{

cout<<"Vvedite radius: "; cin>>r; cout<<endl;

cout<<"1.P okr: ";
a.okr();
cout<<endl;

cout<<"2.S krug: ";
b.kr();
cout<<endl;

cout<<"3.S sfera: ";
c.sf();
cout<<endl;

cout<<"4.V shar: ";
d.oo();
cout<<endl;

system("pause");
return 0;
}


программа работает исправно, но переменные объявлены глобально (на всю программу)
А нужно разбить их по классам. Подскажите как это сделать?
Перерыл весь гугл, часа три в нем убил, ничего толкового не нашел. Препод видимо задачу сам придумал….
Post #: 1
RE: Требуется помощь в С++ - 2012-01-12 13:04:31.080000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Просто объяви переменные внутри класса. Что именно не получается? Единственный нюанс - нужно будет сделать метод для занесения значения в r.
По-моему тут пахнет очень кривонаписанной лабой по теме "наследование". Поэтому препод её и не принимает.

P.S. для оформления кода используй тэги [code].

Вот тебе пример класса "квадрат", без глобальных переменных:
class Square { public: Square() : m_side( 0.0 ) {} ~Square(){} void setSide( double length ) { if ( length &gt; 0.0 ) m_side = length; } double getPerimeter() const { return m_side * m_side; } protected: double m_side; }; int main() { cin &gt;&gt; side; Square sq; sq.setSide( side ); cout &lt;&lt; sq.getPerimeter(); return 0; }
Post #: 2
RE: Требуется помощь в С++ - 2012-01-12 16:36:19.283333   
kolit

Сообщений: 3
Оценки: 0
Присоединился: 2011-05-12 21:42:09.033333
#include &lt;windows.h&gt; #include "iostream" #include "conio.h" using namespace std; #define PI 3.14 class okrujnost { protected: double r; public: double okr() {//вывод окружности return (2*PI*r); } void in_r(double rad){//ввод радиуса r=rad; } double out_r(){//вывод рпадиуса return r; } okrujnost() : r(0.00){}; ~okrujnost(){}; }; class krug:public okrujnost{ //класс круг производный от окружности public: double kr(){ return (PI*pow(r,2));//вывод площади } }; class sfera:public krug { public: double sf(){ return (4*PI*pow(r,2)); } }; class shar:public sfera { public: double oo() { return (4*PI*pow(r,3)/3); } }; int main(){ shar test; double r; cout&lt;&lt;"Vvedite radius: "; cin&gt;&gt;r; cout&lt;&lt;endl; test.in_r(r); cout&lt;&lt;"1.P okr: "&lt;&lt; test.okr()&lt;&lt;endl; cout&lt;&lt;"2.S krug: "&lt;&lt;test.kr()&lt;&lt;endl; cout&lt;&lt;"3.S sfera: "&lt;&lt;test.sf()&lt;&lt;endl; cout&lt;&lt;"4.V shar: "&lt;&lt;test.oo()&lt;&lt;endl; system("pause"); return 0; }
Post #: 3
RE: Требуется помощь в С++ - 2012-01-12 18:46:01.280000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Не сильно лучший говнокод… Чем делать такие подачки - лучше их вообще не делать. Человек ведь ничего не научится.
Post #: 4
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Требуется помощь в С++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.