Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 16
1

Проблемма с компиляцией в Visual C++ 2010

15.11.2011, 21:50. Показов 1063. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проект(empty) создан в консольном режиме, код ниже:
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <math.h>
#include <fstream>
 
//---------------- Посоветували подключить ----
//---------------- библиотеки ----------------- 
//#pragma comment (lib, "bufferoverflowU.lib") 
//#pragma comment (lib, "bufferoverflowK.lib")
//#pragma comment (lib, "bufferoverflow.lib")
 
//---------------------------------------------
 
using namespace std;
 
class AllFunction {
    public:
        double m_mainQ;
 
        AllFunction(){
            m_mainQ = 0;
        }
    
        virtual void input()=0;
        virtual void output()=0;
        virtual void calculate()=0;  
 
        bool operator ==(const AllFunction& temp) const{
            return m_mainQ == temp.m_mainQ;
        }
        bool operator !=(const AllFunction& temp) const{
            return  m_mainQ != temp.m_mainQ;
        }
        bool operator <(const AllFunction& temp) const{
            return m_mainQ < temp.m_mainQ;
        }
        bool operator <=(const AllFunction& temp) const{
            return m_mainQ <= temp.m_mainQ;
        }
        bool operator >(const AllFunction& temp) const{
            return m_mainQ > temp.m_mainQ;
        }
        bool operator >=(const AllFunction& temp) const{
            return m_mainQ >= temp.m_mainQ;
        }
 
};
 
class Shell: public AllFunction {
    public:
        double  m_deltaS,   m_Fotv,     
                m_Miu,      m_H0,
                m_h,        m_R,
                m_Omega1;
    
     
        static double m_G;// = 9.81;
        
        Shell(){
            m_G = 9.81;
        } 
        Shell(double deltaS,double Fotv, double Miu, double H0, double h , double R, double Omega ){
                m_deltaS    =deltaS;
                m_Fotv      = Fotv;     
                m_Miu       = Miu;
                m_H0        = H0;
                m_h         = h;
                m_R         = R;
                m_Omega1    = Omega;
                m_G = 9.81;
        }
        
        void input(){
            ifstream temp ("input.txt",ifstream::in);
            if (!temp) {
                cout<<"Файл не открылся: input.txt"<<endl;
            }
            temp >> m_deltaS >>  m_Fotv >> m_Miu >> m_H0 >> m_h>>
               m_R >> m_Omega1;
            
            temp.close();
 
        }
        void output(){
            ofstream temp("output.txt", ifstream::out);
            temp << m_mainQ << endl;
            temp.close();
        }
        void calculate(){
            
             m_mainQ = ((2*3.14*m_Miu*m_R*m_Fotv) 
                        / (3*m_G*m_deltaS)) 
                        * ( (sqrt(pow( 2*m_G*m_H0+pow(m_Omega1,2)*pow(m_R,2)+2*m_G*m_h,3 ))) 
                        + sqrt(pow(2*m_G*m_H0 + pow(m_Omega1,2)*pow(m_R,2),3)) )  ;
             
        }
 
    };
    
 
void main(){
    AllFunction *a=new Shell() ;
    a->input();
    a->calculate();
    a->output();
}
=====================
=== Ошибки такие: =====!
====================!!
1) error LNK2001: unresolved external symbol "public: static double Shell::m_G" (? m_G@Shell@@2NA)
2) error KNK1120: 1 unresolved externals
==========
По условии на до Static double m_G, сделать константой, но когда делаю
C++
1
const double m_G = 9.81;
Визуал подчеркивает "= "и пишет error: a member of type cannot have ann-in class initializer
Исправте меня криворукого.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2011, 21:50
Ответы с готовыми решениями:

Visual Studio 2010 и 2012. Проблемма после установки 12
Наверное уже кто-то сталкивался с этим и уже написал топик сюда или куда-либо-нибудь, но вот гугл и...

Чем отличается Microsoft Visual C++ 2010 Express от Visual Studio 2010 Ultimate
Подскажите пожалуйста, в чем разница Microsoft Visual C++ 2010 Express от Visual Studio 2010...

Неактивно управление компиляцией Delphi 2010
Столкнулся с проблемой при компиляции программы. Просто нельзя нажать на кнопку компиляции, F9 так...

Трабблы с компиляцией. Ms visual c++ 2008
Я только начал знакомиться с современным компилятором с++ и тут же вылезла ошибочка.. ...

10
Заблокирован
15.11.2011, 21:55 2
Вы только статические константы можете инициализировать внутри класса.

Вместо

C++
1
const double m_G = 9.81;
надо написать
C++
1
static const double m_G = 9.81;
0
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 16
15.11.2011, 22:05  [ТС] 3
не катит, тоже самое
0
Заблокирован
16.11.2011, 18:34 4
Цитата Сообщение от dgroup Посмотреть сообщение
не катит, тоже самое
Что "тоже самое"?! Не фантазируйте! Либо у вас очень старый компилятор, который не поддерживает стандарт С++!
0
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 16
16.11.2011, 18:36  [ТС] 5
ребят. чесно писал
C++
1
static const double m_G = 9.81;
нифига
0
Заблокирован
16.11.2011, 18:39 6
Цитата Сообщение от dgroup Посмотреть сообщение
ребят. чесно писал
C++
1
static const double m_G = 9.81;
нифига
Проблема не в том, что "не катит", а проблема в том, что вы не понимаете, что вы делаете! Если вы объявили константу, то вы не можете менять ее значение в конструкторе!

C++
1
2
3
                Shell(){
                        m_G = 9.81;
                }
Вы хоть думайте, что вы делаете. И кроме того, если возникает ошибка, то надо сообщать, какая ошибка и в каком предложении, чтобы другие не гадали!
0
8 / 8 / 2
Регистрация: 14.11.2011
Сообщений: 54
16.11.2011, 18:41 7
Задай константой через дефайн
C++
1
#define m_G 9.81
0
Заблокирован
16.11.2011, 18:44 8
Цитата Сообщение от Рулик Посмотреть сообщение
Задай константой через дефайн
C++
1
#define m_G 9.81
И ни в коем случае не делайте так, как вам тут посоветовали! Объявите статическую константу внутри класса.
0
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
16.11.2011, 19:10 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A {
public:
    static const double g;
};
 
const double A::g = 9.8;
 
class B {
public:
    const double g;
    B() : g(9.8){}
};
На выбор, так сказать.

Добавлено через 4 минуты
Сыроежка, только целочисленные статические константы можно инициализировать внутри класса.
0
Заблокирован
16.11.2011, 19:12 10
Цитата Сообщение от PraZuBeR Посмотреть сообщение

Добавлено через 4 минуты
Сыроежка, только целочисленные статические константы можно инициализировать внутри класса.
Да, вполне возможно. По памяти не помню, надо смотреть стандарт.
0
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 16
16.11.2011, 23:13  [ТС] 11
спасибо за ответы, ошибку понял. исправлюсь
0
16.11.2011, 23:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2011, 23:13
Помогаю со студенческими работами здесь

Проблема с компиляцией кода в Visual Studio 10.0
Только начал пользоваться C#, немного знаком лишь с Pascal, поэтому полный чайник в...

Подключение и работа с базой данных MS Access 2010 в Visual Studio 2010: VB
Доброго времени суток! Уважаемые гуру програмирования, не моглибы Вы помочь начинающему! ...

Плагин 3Dmax SDK 2010 для Visual Studio 2010
Не подскажите как ставится плагин 3Dmax SDK 2010 для Visual Studio 2010 Autodesk 3ds Max Design...

Кто пишет программы в Visual Studio 2010 на Visual Basic?
Кто пишет программы в Visual Studio 2010 на Visual Basic?

Какое отличие между Visual C++ от Visual C++ 2010 Express
Подскажите какая разница между какимто стандартным Visual C++ от Visual C++ 2010 Express... Что...

Преобразование проекта из visual c++ 6.0 в ms visual studio 2010
Есть проект написанный на visual c++ 6.0. Задача состоит в том, чтобы преобразовать проект в ms...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru