Требуется помощь в С++
Пользователи, просматривающие топик: 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; } программа работает исправно, но переменные объявлены глобально (на всю программу) А нужно разбить их по классам. Подскажите как это сделать? Перерыл весь гугл, часа три в нем убил, ничего толкового не нашел. Препод видимо задачу сам придумал….
|
|
|
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 > 0.0 )
m_side = length;
}
double getPerimeter() const
{
return m_side * m_side;
}
protected:
double m_side;
};
int main()
{
cin >> side;
Square sq;
sq.setSide( side );
cout << sq.getPerimeter();
return 0;
}
|
|
|
RE: Требуется помощь в С++ - 2012-01-12 16:36:19.283333
|
|
|
kolit
Сообщений: 3
Оценки: 0
Присоединился: 2011-05-12 21:42:09.033333
|
#include <windows.h>
#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<<"Vvedite radius: "; cin>>r; cout<<endl;
test.in_r(r);
cout<<"1.P okr: "<< test.okr()<<endl;
cout<<"2.S krug: "<<test.kr()<<endl;
cout<<"3.S sfera: "<<test.sf()<<endl;
cout<<"4.V shar: "<<test.oo()<<endl;
system("pause");
return 0;
}
|
|
|
RE: Требуется помощь в С++ - 2012-01-12 18:46:01.280000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Не сильно лучший говнокод… Чем делать такие подачки - лучше их вообще не делать. Человек ведь ничего не научится.
|
|
|
|
|