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

Как правильно вызывать функцию объекта из другой функции того же объекта? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Из односвязного списка двухсвязный http://www.cyberforum.ru/cpp-beginners/thread400818.html
Есть Класс который имеет интерфейс АТД который включает методы для добавления, удаления, поиска элементов в соответствии с логикой работы структуры данных. Здесь структура Данных - циклический односвязный список Мне нужна реализовать двусвязный список с теми же методами. Как это сделать? class Clist { private: struct listitem {
C++ часто встречаемое слово В входном файле нужно найти одно или несколько наиболее часто встречаемых слова. программа довольно часто встречается, может у кого есть исходник? http://www.cyberforum.ru/cpp-beginners/thread400816.html
Как усовершенствовать программу? C++
Доброго времени суток! Начал изучать с++,написал простенькую прогу чтобы попрактиковаться,хотелось бы узнать как можно ещё более усовершенствовать прогу или усложнить немного? Программа вычисляет максимальное и минимальное число,причём пользователь может выбирать сколько чисел он хочет сравнить и показывает какие числа он вводил. #include<iostream.h> #include<conio.h>
C++ Ввод функций с клавиатуры...
:wall:Как можно в С/С++ вводить функцию с клавиатуры и потом что бы можно было считать значение с этой функцией.....Например функция y=sin(x)*cos(x) y=...наша функция с клавиатуры Благодарен всем кто откликнется.........:)
C++ Чтение чисел из файла, содержащего концевые пробелы и переносы строк. http://www.cyberforum.ru/cpp-beginners/thread400802.html
Здравствуйте! Помогите, пожалуйста, разобраться со следующей задачей. В текстовом файле содержатся целые числа, разделенные произвольным количеством пробелов и переносов строк. Нужно эти числа из файла занести в стек. Написал такой код: CStack stck; int n; FILE * fRead; fRead = fopen("e:\\test.txt","rt");
C++ Преобразование типов. Дружественные функции Создать класс комплексных чисел. Определить перегруженную функцию, возвращающую максимальный из двух аргументов. Функция не является членом класса комплексных чисел. Перегруженные функции имеют аргументы типа int, double, complex. Тело перегруженных функций должны быть одинаковыми. Создать два класса вектор (float *) и матрица (float **). Определить конструкторы - по умолчанию, с параметром, для... подробнее

Показать сообщение отдельно
Bers
Заблокирован
07.12.2011, 07:31     Как правильно вызывать функцию объекта из другой функции того же объекта?
Цитата Сообщение от greeezz Посмотреть сообщение
я не нашел ни одного примера где используется разрешение контектса а объявлении классов.
Ну вот например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct Base {  void View() { std::cout<< "Base\n"; } };
struct Next: protected Base 
{  
    void View(int v) { std::cout<< "Next\n"; } 
    Base::View;  //методы базового типа 
                 //вообще то protected в наследнике.
                 //хотя вообще то, дабы не смущать общественность
                //лучше перед разрешением контекста в объявлении
                 //ставить ключевое слово using
};
 
 
int main()
{
    Next test; 
    test.View(); //наследник вызывает "разрешенный" 
                     //protected метод своего предка
    test.View(1);
}
Добавлено через 13 минут
и ещё для наглядности вот:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct Base {  protected: void View() { std::cout<< "Base\n"; } };
struct Next: protected Base 
{  
    void View(int v) { std::cout<< "Next\n"; } 
    using Base::View;  //обрати внимание, в базовом классе
                       //метод находится в protected зоне
};
 
 
int main()
{
    Next test; 
    test.View(); //однако мы указали компилятору, 
                 //что для наследника, методы
                 //находятся в зоне модификаторов
                 //доступа наследника
    test.View(1);
}
Ну и напоследок:

C++
1
2
3
4
5
6
struct Base { private: void View() { std::cout<< "Base\n"; } };
struct Next: protected Base 
{  
    void View(int v) { std::cout<< "Next\n"; } 
    using Base::View;  // error C2876: Base: не все перегрузки доступны
};
К приватным методам-данным наследник доступа не имеет. Инкапсуляция
 
Текущее время: 09:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru