Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexVinBog
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 16
#1

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

22.03.2013, 22:02. Просмотров 337. Ответов 8
Метки нет (Все метки)

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

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования - C++
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс...

this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор) - C++
class Test { int i; public: void test(int i) { this -> i = i; } }; Конструктор Test::Test всегда вызывается...

Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром? - C++
Добрый день, сразу к делу, есть некий класс class some { int x; public: some(int y = 1) : x(y) {} };

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно» - C++
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику - C++
#include "stdafx.h" #include <iostream> #include <conio.h> #include <windows.h> #include <math.h> #include <algorithm> using...

Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? - C++
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?

8
NEbO
588 / 455 / 49
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
Завершенные тесты: 2
22.03.2013, 22:07 #2
статический член класса.
1
AlexVinBog
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 16
22.03.2013, 22:11  [ТС] #3
TClass::x=x;
это объясните тоже, почему так пишется или что здесь выполняется?
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,357
Записей в блоге: 2
Завершенные тесты: 1
22.03.2013, 22:13 #4
Цитата Сообщение от NEbO Посмотреть сообщение
статический член класса.
вообще не факт.

А такая запись в данном случае используется для того, чтобы разделять x - параметр конструктора и х - член класса.
0
NEbO
588 / 455 / 49
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
Завершенные тесты: 2
22.03.2013, 22:19 #5
Цитата Сообщение от Kastaneda Посмотреть сообщение
вообще не факт.
что это еще может быть? "обычным" полем объекта -- тогда бы было this.x, вроде как. вроде даже неймспейсом не может, ибо неоднозначность и скорее всего, компилятор вылетит
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,357
Записей в блоге: 2
Завершенные тесты: 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;
}
1
NEbO
588 / 455 / 49
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
Завершенные тесты: 2
22.03.2013, 22:43 #7
насчет первого -- понял, проверил, я был неправ, каюсь.
ну а насчет неймспейса: "TClass" == "TClass", а "Foo" != "MyNamespace". то есть имя неймспейса должно быть такое же, как и имя класса (в коде автора ведь так!). а так сделать нельзя, по крайней мере на моем gcc 4.7.1.
0
Kastaneda
22.03.2013, 22:48
  #8

Не по теме:

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

0
NEbO
22.03.2013, 22:54     Пояснить конструктор
  #9

Не по теме:

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

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

Конструктор производного класса требует конструктор предка - C++
Выдаёт вот такую вот ошибку: no matching function for call to 'Cube::Cube()' class Cube { protected: int magInt; bool...

Конструктор инициализации, конструктор копирования, деструктор - C++
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор....

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор - C++
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...

Конструктор класса не видит конструктор по умолчанию другого класса - C++
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть....


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

Или воспользуйтесь поиском по форуму:
9
22.03.2013, 22:54
Ответ Создать тему
Опции темы

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