Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 5.00
[C0DER]
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 10
#1

Основы ООП [С++] - C++

30.05.2010, 13:02. Просмотров 2893. Ответов 5
Метки нет (Все метки)

Немного знаю Java, написал программу которая по заданным 2-м сторонам и углом между нимию Попробовал перевести на С++
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
#include <math.h>
#include <iostream.h>
#define PI 3.1415
class Main{
     int C;
     float  a, b;
    Main(){
        a=2;
        b=4;
        C=45;
    }
    Main(float a, float b, int C){
        a=a;
        b=b;
        C=C;
    }
 float storona_c(float a, float b, int C) {
   float c=(float)(a * a + b * b - 2 * a * b * cos(C));
     return (float) sqrt(c);
 }
 float ygol_A(float a, int C, float c){
        float A = (float) asin((a * sin(C)) / c);
     return (float) (180 * A / PI);
 }
 float ygol_B(float A, int C){
     return 180 - (A + C);
 }
 float perimetr(float a, float b, float c){
    return a+b+c;
 }
 float area(float P, float a, float b, float c){
    float p = P/2;
    float S = (float) sqrt(p*(p-a)*(p-b)*(p-c));
    return S;
}
 void logic(float A, float B, int C){
    if (A>90 || B>90 || C>90){
        cout<<"Тупоугольный";
    }  else if ( A==90 || B==90 || C==90){
        cout<<"Прямоугольный";
    }  else {
        cout<<"Остроугольный";
    }
}
void main(){
    float  x = 0, y = 0;
    int z = 0;
    cin>>x>>y>>z;
    Main p = Main(x, y, z);
    float A, B, c, P, S;
       c = storona_c(p.a, p.b, p.C);
         cout<<"сторона c = "<<c;
       A = ygol_A( p.a, p.C, c);
        cout<<"Угол А = "<<(int)A;
       B =  ygol_B (A,  p.C);
        cout<<"Угол B = "<<(int)B;
       P =  perimetr(p.a, p.b, c);
        cout<<"Периметр = "<<P;
       S =  area(P, p.a, p.b, c);
        cout<<"Площадь = "<<S;
       logic(A, B, p.C);
    system("pause");
}
}
Выдает ошибку: [BCC32 Error] File1.cpp(67): E2040 Declaration terminated incorrectly.
Помогите запустить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2010, 13:02     Основы ООП [С++]
Посмотрите здесь:

Классы основы C++
C++ ООП Создание основы класса
Visual C++ основы MFC
C++ Основы массивов
Основы ООП, ввод данных C++
Знаю ли я основы ООП? C++
C++ Основы ООП. Создание стека через класс
C++ Где могу прочитать про основы ООП?
C++ Основы ООП
Основы веб в C++ C++
Boost C++ Основы многопоточности
Ооп. Изучаю основы, обьясните на примере C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
30.05.2010, 13:15     Основы ООП [С++] #2
Первое что увидел: все члены Main обьявлены как private(в классах С++ private - спецификатор доступа по умолчанию), line 44: }};
[C0DER]
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 10
30.05.2010, 14:19  [ТС]     Основы ООП [С++] #3
Сделал все методы "public: "? ошибка осталась прежняя.
И я не догнал что значит
line 44: }}
Метод Main нужно вынести в другой класс?
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
30.05.2010, 15:16     Основы ООП [С++] #4
[C0DER], С++ в отличие от Java - не объектно ориентированный, поэтому main должен быть за пределами какого-либо класса или структуры. К тому же, по стандарту main должен возвращать значение типа int, в отличие от Java, где main объявлен как public static void
Цитата Сообщение от C0DER Посмотреть сообщение
C++
1
Main p = Main(x, y, z);
Вот этот код должен выглядеть так:
C++
1
Main* p = new Main(x, y, z);
Странно, что вы не написали слово new, ведь оно используется и в C++, и в C#, и в Java

Да, после закрывающей скобки класса должна быть точка с запятой
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
30.05.2010, 15:39     Основы ООП [С++] #5
Я имел ввиду что не хватает одной скобки и ;

ПС. А какой же С++, процедурный? Мейн может быть и войд, просто переносимость обеспечивается только для инт.
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
30.05.2010, 15:43     Основы ООП [С++] #6
Цитата Сообщение от Manjak Посмотреть сообщение
А какой же С++, процедурный?
Он не объектно ориентированный, он просто с поддержкой ООП.


Цитата Сообщение от Manjak Посмотреть сообщение
Мейн может быть и войд, просто переносимость обеспечивается только для инт.
Я не сказал, что он всегда должен быть инт, я сказал, что по стандарту он инт
Yandex
Объявления
30.05.2010, 15:43     Основы ООП [С++]
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru