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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как пресечь ввод текста вместо цифр? http://www.cyberforum.ru/cpp-beginners/thread910767.html
В общем имеется простая программка. Почему то на ввод текста реагирует как выполнение первого условия? Как сделать так чтобы на ввод текста выдавать ошибку? #include <iostream> using namespace std; int main() { int x; cout << "VVedite chislo: ";
C++ Логика выражения Изучать С начал недавно, изучение изучением, а вопрос текущий назрел и в литературе когда появится ответ, не особо известно) В общем по делу, есть код, вычисление урона под определенными эффектами: if (CSharedDatA != NULL) { int bufflevel = 0; double dmg_mod=0; //dance of fire npc buff http://www.cyberforum.ru/cpp-beginners/thread910763.html
C++ проверьте условие
Всем приветик. Проверьте пожалуйста мое условие. Вроде написано правильно но считает не правильно. #include <iostream.h> #include <conio.h> #include <math.h> const pi=3.14; int main() { double x, y, z, a, b ,c, t;
Каждую из трёх прямоугольных матриц преобразовать по правилу C++
все элементы каждой строки матрицы разделить на минимальный элемент этой строки. #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <time.h> #include <iostream> #include <locale.h>
C++ Сместить строку с минимальным элементом матрицы http://www.cyberforum.ru/cpp-beginners/thread910730.html
Помогите пожалуйста, очень срочно надо, у самой ничего не выходит. Дана прямоугольная целочисленная матрица NxM. Строку, в которой находится минимальный элемент матрицы сдвинуть на одну позицию вправо, каждый элемент строки смещается на одну позицию вправо, а последний уходит в начало.
C++ Дан файл, содержащий текст на русском языке. Подсчитать кол-во слов, в которых кол-во гласных и согласных совпадает Дан файл, содержащий текст на русском языке. Подсчитать кол-во слов, в которых кол-во гласных и согласных совпадает. Никак не могу понять в чем ошибка.. код #include <stdio.h> #include <string.h> #include <iostream> #include <Windows.h> using namespace std; подробнее

Показать сообщение отдельно
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
24.06.2013, 14:22     Зависимость значений от модификатора доступа
Здравствуйте!

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

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

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());
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru