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

Зависимость значений от модификатора доступа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как пресечь ввод текста вместо цифр? http://www.cyberforum.ru/cpp-beginners/thread910767.html
В общем имеется простая программка. Почему то на ввод текста реагирует как выполнение первого условия? Как сделать так чтобы на ввод текста выдавать ошибку? #include <iostream> using namespace...
C++ Логика выражения Изучать С начал недавно, изучение изучением, а вопрос текущий назрел и в литературе когда появится ответ, не особо известно) В общем по делу, есть код, вычисление урона под определенными... http://www.cyberforum.ru/cpp-beginners/thread910763.html
C++ проверьте условие
Всем приветик. Проверьте пожалуйста мое условие. Вроде написано правильно но считает не правильно. #include <iostream.h> #include <conio.h> #include <math.h> const pi=3.14; int main() {...
Каждую из трёх прямоугольных матриц преобразовать по правилу C++
все элементы каждой строки матрицы разделить на минимальный элемент этой строки. #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include...
C++ Сместить строку с минимальным элементом матрицы http://www.cyberforum.ru/cpp-beginners/thread910730.html
Помогите пожалуйста, очень срочно надо, у самой ничего не выходит. Дана прямоугольная целочисленная матрица NxM. Строку, в которой находится минимальный элемент матрицы сдвинуть на одну позицию...
C++ Дан файл, содержащий текст на русском языке. Подсчитать кол-во слов, в которых кол-во гласных и согласных совпадает Дан файл, содержащий текст на русском языке. Подсчитать кол-во слов, в которых кол-во гласных и согласных совпадает. Никак не могу понять в чем ошибка.. код #include <stdio.h> #include... подробнее

Показать сообщение отдельно
Egor138
32 / 13 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2

Зависимость значений от модификатора доступа - C++

24.06.2013, 14:22. Просмотров 234. Ответов 1
Метки (Все метки)

Здравствуйте!

У меня возник очень странный вопрос, с которым я совсем запутался

вот функция, которая работает с переменными какого-то объекта класса:

C++
1
2
3
4
5
6
    void set_adr(string adr_, Directory *dr)  
    {
        dr->adr = adr_+"\\"+dr->name; 
        for(size_t i=0; i<dr->Folders.size(); ++i)
                      set_adr(dr->adr, dr->Folders.at(i));
    }
Есть класс Directory в котором в разделе public описанны переменные: adr, name;
Все работает отлично

Теперь я немного изменю класс, из этого

C++
1
2
3
4
5
6
7
8
9
10
11
12
class Directory
{
    public:
//....
        string adr; 
        string name;
        Directory *parent;
        vector <Directory*> Folders;
 
//....
 
};
НА ВОТ ЭТО

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Directory  
{
    private:
        string adr; 
        string name;
        Directory *parent;
    public:
        vector <Directory*> Folders;
 
        string get_name(void) {return name;}
        string get_adr(void) {return adr;}
        Directory* get_parent(void) {return parent;}
};
Тоесть я просто переменные переместил в Private и создал соответствующие функции для доступа к этим переменным из вне класса.

Соответственно функция изменилась на вот это

C++
1
2
3
4
5
6
    void set_adr(string adr_, Directory *dr)
    {
        dr->get_adr() = adr_+"\\"+dr->get_name(); 
        for(size_t i=0; i<dr->Folders.size(); ++i)
                      set_adr(dr->get_adr(), dr->Folders.at(i));
    }
Но теперь она работает совсем не правильно, эти переменные adr, name соовсем не такие, какими должны быть
Я совсем ничего не могу понять, вроде код аналогичный, а значаения разные!!!

Добавлено через 10 минут

______________________________________________________________________
Все я разобрался, я что-то совсем туплю.

Просто заменил строку


C++
1
dr->get_adr = adr_+"\\"+dr->get_name();// Здесь ошибка!!!!!!!!!
на


C++
1
dr->set_address(adr_+"\\"+dr->get_name());
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru