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

Пояснить конструктор - C++

Восстановить пароль Регистрация
 
AlexVinBog
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 16
22.03.2013, 22:02     Пояснить конструктор #1
Вот такая вешчь в конструкторе, а что она означает и как работает?
C++
1
2
3
4
TClass::TClass(float x)
{
TClass::x=x;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2013, 22:02     Пояснить конструктор
Посмотрите здесь:

Пояснить строку C++
C++ Пояснить задание
пояснить условие C++
C++ Прошу пояснить код программы, C++
C++ Конструктор производного класса требует конструктор предка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NEbO
583 / 451 / 49
Регистрация: 22.01.2009
Сообщений: 1,173
Записей в блоге: 1
Завершенные тесты: 1
22.03.2013, 22:07     Пояснить конструктор #2
статический член класса.
AlexVinBog
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 16
22.03.2013, 22:11  [ТС]     Пояснить конструктор #3
TClass::x=x;
это объясните тоже, почему так пишется или что здесь выполняется?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
22.03.2013, 22:13     Пояснить конструктор #4
Цитата Сообщение от NEbO Посмотреть сообщение
статический член класса.
вообще не факт.

А такая запись в данном случае используется для того, чтобы разделять x - параметр конструктора и х - член класса.
NEbO
583 / 451 / 49
Регистрация: 22.01.2009
Сообщений: 1,173
Записей в блоге: 1
Завершенные тесты: 1
22.03.2013, 22:19     Пояснить конструктор #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
вообще не факт.
что это еще может быть? "обычным" полем объекта -- тогда бы было this.x, вроде как. вроде даже неймспейсом не может, ибо неоднозначность и скорее всего, компилятор вылетит
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
22.03.2013, 22:24     Пояснить конструктор #6
Цитата Сообщение от NEbO Посмотреть сообщение
что это еще может быть? обычным -- тогда бы было this.x, вроде как.
Ну может быть и так и так.
Вот рабочий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
class Foo
{
public:
   Foo (int x)
   {
      Foo::x = x;
   }
   
   int x;
};
 
int main()
{
   Foo bar(10);
   
   std::cout << bar.x;
   
   return 0;
}
Цитата Сообщение от NEbO Посмотреть сообщение
вроде даже неймспейсом не может, ибо неоднозначность и скорее всего, компилятор вылетит
А почему нет?
Вот тоже рабочий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
namespace MyNamespace {int x;}
 
class Foo
{
public:
   Foo (int x)
   {
      MyNamespace::x = x;
   }
   
   int x;
};
 
int main()
{
   Foo bar(10);
   
   std::cout << MyNamespace::x;
   
   return 0;
}
NEbO
583 / 451 / 49
Регистрация: 22.01.2009
Сообщений: 1,173
Записей в блоге: 1
Завершенные тесты: 1
22.03.2013, 22:43     Пояснить конструктор #7
насчет первого -- понял, проверил, я был неправ, каюсь.
ну а насчет неймспейса: "TClass" == "TClass", а "Foo" != "MyNamespace". то есть имя неймспейса должно быть такое же, как и имя класса (в коде автора ведь так!). а так сделать нельзя, по крайней мере на моем gcc 4.7.1.
Kastaneda
22.03.2013, 22:48
  #8

Не по теме:

Цитата Сообщение от NEbO Посмотреть сообщение
ну а насчет неймспейса: "TClass" == "TClass", а "Foo" != "MyNamespace"
А это имелось ввиду, я сразу не понял, хотя да, по контексту мог бы понять)

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2013, 22:54     Пояснить конструктор
Еще ссылки по теме:

Пояснить про указатели и ссылки C++
Пояснить что делает код C++
C++ Пояснить по работе с указателями

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

Или воспользуйтесь поиском по форуму:
NEbO
22.03.2013, 22:54     Пояснить конструктор
  #9

Не по теме:

да черт его знает, на самом деле но хорошо, что вы меня поправили, пхп испортил мои знания плюсов.

Yandex
Объявления
22.03.2013, 22:54     Пояснить конструктор
Ответ Создать тему
Опции темы

Текущее время: 14:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru