Чем gcc отличается от g++ (gcc vs g++?)

Модератор: Модераторы разделов

frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Чем gcc отличается от g++

Сообщение frp »

deninok писал(а):
16.06.2009 12:52
В современном С++ использование глобальных переменных не оправдано ничем. Иными словами, глобальные переменные в С++-программах вообще не нужны. В свете этого неопределённый порядок инициализации глобальных переменных уже не является проблемой.

А как без глобальных переменных переделать такую програмку:

Код: Выделить всё

#include <iostream>
using namespace std;
int global_var;
class A
{
 public:
 A(){}
 ~A(){}
 int do_something(){/*Выполнить некоторые действия над global_var*/}
}
class B
{
 public:
 A(){}
 ~A(){}
 int do_something(){cout<<global_var;}
}
int main()
{
 cin>>global_var;
 /*Выполнить некоторые действия над global_var*/
 A a;
 a.do_something();
 /*Выполнить некоторые действия над global_var*/
 b.do_something();
 return 0;
}

У меня очень часто возникают подобные ситуации.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение Portnov »

frp писал(а):
21.06.2009 16:24
А как без глобальных переменных переделать такую програмку:


frp писал(а):
21.06.2009 16:24
/*Выполнить некоторые действия над global_var*/


Очевидно, не выполнять этих действий над global_var :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
SergiusTux
Сообщения: 14
ОС: GNU/Linux, Slackware

Re: Чем gcc отличается от g++

Сообщение SergiusTux »

Portnov писал(а):
21.06.2009 17:27
frp писал(а):
21.06.2009 16:24
А как без глобальных переменных переделать такую програмку:


frp писал(а):
21.06.2009 16:24
/*Выполнить некоторые действия над global_var*/


Очевидно, не выполнять этих действий над global_var :)

Не конструктивный ответ.

Как вариант, используйте класс-синглетон с созданием единственного объекта класса при первом запросе к нему и автоматическим уничтожением при завершении программы.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

SergiusTux писал(а):
21.06.2009 23:57
Не конструктивный ответ.

почему?
я так-же бы ответил...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

(frp) писал(а):А как без глобальных переменных переделать такую програмку:
...
У меня очень часто возникают подобные ситуации.

Сделать такую программку без глобальной переменной не составляет никакого труда. Вообще, рекомендую вам поближе познакомиться с методами ОО-проектирования, если вы хотите использовать всю мощь современного С++. Вот эти книги вам очень помогут.

Если вам действительно нужна сущность, имеющая глобальную точку доступа для некоторого числа классов (реализованных, разумеется, в разных единицах трансляции) - используйте синглтон (Singleton). Если желаете взглянуть на код - пожалуйте сюда (простейший вариант) или сюда (мой вариант, основанный на решении Александреску).
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение deninok »

drBatty писал(а):
20.06.2009 06:38
есть ещё и статические переменные...

Код: Выделить всё

int f()
{
static x=4;
return x;
}

если доверить их инициализацию компилятору(точнее линковщику ИМХО), то это будет очень смешные грабли.

Я говорил о стандартном С++, а вы пишете устаревший С-шный код. Объявлять переменную без явного указания её типа (как вы сделали это с х) запрещено стандартом, и это не скомпилируется.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Чем gcc отличается от g++

Сообщение drBatty »

deninok писал(а):
22.06.2009 10:30
а вы пишете устаревший С-шный код.

почему "устаревший"? очень всё нормально компилируется. ИМХО и через 20 лет будет компилироваться. Конечно только как Си, без ++.
но я не про то. поставьте int, если угодно. грабли всё равно останутся...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
intelfx
Сообщения: 12
ОС: Arch Linux

Re: Чем gcc отличается от g++

Сообщение intelfx »

Ужос... 2 страницы флейма. на вопрос темы отвечает сообщение Uncle_Theodore в конце первой страницы: g++ это wrapper к gcc, кот. запускает gcc с необходимыми параметрами (libc++, headers etc) для компиляции C++ кода.
Спасибо сказали:
Ответить