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

Как это сделать? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Закрытое наследование http://www.cyberforum.ru/cpp-beginners/thread842816.html
Помогите, пожалуйста, ответить на такой вопрос: Что такое переопределение методов (в производном классе)? Продемонстрировать его полезность на примере кода. Заранее спасибо
C++ задача на структуры Для хранения данных о ноутбуках описать структуру вида: struct NOTEBOOK { char model;//наименование int price; //цена float w; //вес struct size{ //габаритные размеры float x;//высота float y;//длина float z;//ширина } http://www.cyberforum.ru/cpp-beginners/thread842810.html
Дайте исходник на сингелтон C++
Только не ограничиваясь самим классом, а ещё с кодом, к нему обращающимся. Пусть в экземпляре сингелтона будет ещё хотябы один член-данное и к нему обращение извне напрямую, или через функцию-член.
Как вынести функцию с++ в отдельный файл C++
Как вынести функцию в отдельный файл как в PHP например: Например есть функция int function(){ int a,b,c; a=3; b=5; c=a+b;
C++ Кодеблокс не собирает http://www.cyberforum.ru/cpp-beginners/thread842778.html
Checking for existence: C:\tsserver\Projects\cpp\codeblocks\units\units\units.exe Executing: "C:\tsserver\Projects\cpp\codeblocks\units\units\units.exe" (in C:\tsserver\Projects\cpp\codeblocks\units\units\.) Process terminated with status 0 (0 minutes, 0 seconds), но почему то екзешника нет, есть только units.o.
C++ Обращение к сингелтону class OnlyOne { public: static const OnlyOne& Instance() { static OnlyOne theSingleInstance; return theSingleInstance; } private: OnlyOne(){}; подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.04.2013, 15:09     Как это сделать?
То, что объект есть, ещё не значит, что он инициализирован. О возможности косячной инициализации прямым текстом сказано в стандарте, там даже пример есть. И в моей цитате этот кусок тоже есть.

Смотрите, вот есть такие файлы:
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
/* == cpp1.h ==== */
#ifndef CPP1_H_
#define CPP1_H_
 
struct A {
    int m_x;
 
    A(int x) : m_x(x) {}
};
 
extern A global1;
 
#endif // CPP1_H_
 
 
/* == cpp1.cpp ==== */
#include "cpp1.h"
 
A global1(42);
 
 
/* == cpp2.h ==== */
 
#ifndef CPP2_H_
#define CPP2_H_
 
#include "cpp1.h"
 
struct B {
    int m_x;
 
    B(const A &a) : m_x(a.m_x) {}
};
 
extern B global2;
 
#endif // CPP2_H_
 
 
/* == cpp2.cpp ==== */
 
#include "cpp2.h"
#include "cpp1.h"
 
B global2(global1);
 
 
/* == main.cpp ==== */
 
#include <iostream>
 
#include "cpp1.h"
#include "cpp2.h"
 
int main()
{
    std::cout << global1.m_x << "\n";
    std::cout << global2.m_x << "\n";
}
Теперь мы их компилим:
Код
c:\Tmp>g++ -c cpp1.cpp

c:\Tmp>g++ -c cpp2.cpp

c:\Tmp>g++ -c main.cpp
А теперь линкуем, но в разном порядке:
Код
c:\Tmp>g++ main.o cpp2.o cpp1.o && a.exe
42
42

c:\Tmp>g++ main.o cpp1.o cpp2.o && a.exe
42
0
 
Текущее время: 10:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru