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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
#1

оператор точка - C++

06.11.2010, 03:40. Просмотров 2780. Ответов 7
Метки нет (Все метки)

почему когда объявляю свой класс в другом классе, и после использования точки, то переменная, например типа int, которю я хочу вывести, равна 0? например

C++
1
2
3
4
5
6
7
CMyClass myClass;
 
....
void CMyClass2::func()
{
   myClass.переменная... //вот она равна нуля, я хз почему
}
хотя компилятор никаких ошибок не выдаёт, и после точки вылезает список этот, в чём может причина?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2010, 03:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос оператор точка (C++):

Что конкретно означает оператор . (точка) при вызове каких либо функций? - C++
Например, функция s.size() вычисляет длину строки s. Так есть где-нибудь определение этой точки? В Википедии написано "Обращение к члену...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 - C++
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае. - C++
Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Black Fregat
1381 / 1011 / 222
Регистрация: 31.05.2009
Сообщений: 4,240
06.11.2010, 03:54 #2
Ничего не понял. Можно более подробный код?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.11.2010, 04:08 #3
Может быть потому что она должна быть равна нулю?
Ну это так, привет от Кэпа. Без кода подробно никто ничего не скажет.

И зачем вообще так извращаться?
В методе класса к переменным можно обращаться тупо по имени, либо если очень хочется this->
0
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
06.11.2010, 04:20  [ТС] #4
блин, например, есть:
C++
1
2
3
4
5
6
class CClass1
{
public:
   int x
   CClass(); //конструктор
};
в конструкторе x = 5; //например

есть ещё другой класс:
C++
1
2
3
4
5
6
7
#include "class1.h"
class CClass2:
{
public:
   CClass1 class1;
   void hz();
};
C++
1
2
3
4
5
6
7
8
//class2.cpp
#include "class2.h"
void CClass2::hz()
{
   CString str;
   str.Format("x = %d", class1.x);
   MessageBox(....);
}
ну и сообщение что x = 0, вроде так понятнее должно быть )
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.11.2010, 04:27 #5
Ну как бэ... Результат 5...
Без конструктора LInt резалт аналогичный - 5.

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
#include <iostream>
 
class Int
{
public:
    Int():x(5)
    {
    }
    int x;
};
 
class LInt
{
public:
    LInt()
    {
    }
    Int Ob;
    void do_smth()
    {
        std::cout<<Ob.x<<'\n';
    }
};
 
int main()
{
    LInt l;
    l.do_smth();
    return 0;
}
1
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
06.11.2010, 05:16  [ТС] #6
кажется я понял в чём проблема, у меня там 2 конструктора просто
C++
1
2
3
4
5
6
7
8
CClass1::CClass1(int a, int b)
{
   x = 5;
}
 
CClass1::CClass1()
{
}
и переменной присваивалось значение в конструкторе который сверху стоит, я даже не знал что такое может быть

Добавлено через 11 минут
тока всё равно что-то не то, если я где-то изменяю значение этой переменной, то там где мне нужно, она остаётся неизменной, кажется я чего-то не догоняю
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.11.2010, 05:35 #7
Xtir, Код в студию. Вместе с главной функцией в которой создается объект.
0
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
06.11.2010, 11:01  [ТС] #8
ну я в общем загрузил эти 4 файла, там переменные hp, atk, def которые мне нужны увидеть в функции CPanel::Show()
0
Вложения
Тип файла: rar test.rar (2.2 Кб, 9 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2010, 11:01
Привет! Вот еще темы с ответами:

Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их - C++
Даны отрезки и и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их

Определить принадлежит точка точка координатам - C++
Такая задача даны действительные числа x y определить принадлежит точка координатам х у заштрихованной части площади или нет, программу...

удалить из каждой группы идущих подряд цифр, которой не предшествует точка, все начальные нули (кроме последнего, если за ним идет точка) - C++
В произвольном тексте, содержащем не более 10 строк, в каждой строке не более 80 символов, удалить из каждой группы идущих подряд цифр,...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.11.2010, 11:01
Ответ Создать тему
Опции темы

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