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

Ключ доступа protected - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ lib библиотеки http://www.cyberforum.ru/cpp-beginners/thread45710.html
Я пишу статическую библиотеку, и в неё мне надо подключить другие стат. либы (из DirectX SDK). Как их подключить? Пробовал через #pragma comment(lib, "имя библиотеки"), но когда в другом проекте я подключаю свою библиотеку, при компиляции линковщик ругается на переменные и функции DirectX. В обычном win32 exe приложении я подключал через свойства проекта>linker>input> и там писал имя библиотек....
C++ текст на русском! Что неправильного в тексте программы? нужнго слово ПРИВЕТ вывести на экран! // rus.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> char * Rus(const char* text); char buf_Rus ; int main() {printf (Rus ("\t ÏÐÈÂÅÒ \n")); http://www.cyberforum.ru/cpp-beginners/thread45698.html
C++ Error LNK2001: неразрешенный внешний символ
Помогите пожалуйста тупому нубу :) Все неприятности начались после добавления дружественного класса - class KWnd { static HWND mhWnd; WNDCLASS wc; static HINSTANCE hInstance; static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); friend class wclass; public:
не работает функция isupper() C++
Доброе утро!У меня в программе не работает функция isupper(): for(int index = 0; index < strlen(str); index++) { if(isupper(*(str+index))) count_symbol++; } При компиляции все нормально,ошибок нет,но после запуска останавливается программа и появляется окно с ошибкой Expression:(unsigned)(c+1) <= 256....
C++ текстовая обработка http://www.cyberforum.ru/cpp-beginners/thread45658.html
дано задание: "Дана последовательность строк. Каждая строка состоит из слов, разделенных пробелами. Написать программу, обеспечивающую ввод строк и их корректировку. Корректировка заключается в выравнивании строк по ширине, размер которой указан с клавиатуры. Выравнивание выполняется по возможности равномерным добавлением пробелов между словами, но не в начале и в конце строки. Вывести на печать...
C++ Переопределение оператора== Создал функцию-операцию == для экземпляров класса, однако при выполнении данного кода Trigger.h #pragma once #include "combinate.h" class Trigger : public Combinate { static int *intValues; подробнее

Показать сообщение отдельно
Skirmisher
44 / 44 / 0
Регистрация: 23.05.2009
Сообщений: 92
01.08.2009, 13:01  [ТС]     Ключ доступа protected
Защищенные члены
Защищенные члены имеют доступ к метке и могут рассматриваться, как смешение свойств закрытых и открытых полей:

Схожее свойство закрытым членам: защищенные члены недоступны пользователям
класса.

Схожее свойство с открытыми членами: защищенные члены доступны в классах производных от этого класса.

В дополнение защищенные члены имееют другое значительное свойство:

Объект производного класса может получить доступ к защищенными членами
этого базового клсса только через объект производного класса. Производный класс
не имеет специального доступа к защищенным членам объектов этого базового класса(типа).

Например: позволим принимать определения Bulk_item методу, который ссылается на объект Bulk_item и ссылается на объект Item_base. Эта функция может иметь доступ к защищенным членам основного объекта также, как все эти параметры Bulk_item/
Однако, он не имеет специального доступа к защищенным членам в параметре Bulk_item:
void Bulk_item::memfcn(const Bulk_item &d, const Item_base &b)
{
// доступ для того чтобы использовать защищенный член
double ret = price; // ok: используй this->price
ret = d.price; // ok: использую price от объекта Bulk_item
ret = b.price; // ошибка: нет доступа к price от Item_base
}
Когда проектируешь класс, для того чтобы продолжить работать с базовым классом,
критерий проектирования члена, такого как public не изменяйте: он по-прежнему, является случаем интерфейса функций должны быть как public и данные в основном должны быть, как не public. Класс спроектированный для того чтобы наследовать от
должных решенных частей выполнения, для того чтобы объявить их, как защищенные
и некоторые должны быть закрытыми . Член должен быть закрытым, если мы желаем предотвратить более поздние производные классы от доступа к этому члену. Член должен быть защищенным, если он поставляет операцию или данные, которые будут нуждаться к использованию в производном классе при его выполнении. Другими словами интерфейс производного класса является комбинацией обоих защищенных
и открытых членов.


Добавлено через 2 минуты 12 секунд
Цитата Сообщение от Skirmisher Посмотреть сообщение
Статичекое защищенное поле:
Camera.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Camera
{
public:
        Camera(long t) {
                time = t;
        }
virtual ~Camera() {
        }
protected:
        static const char* positionStr[POSITION_COUNT];
             long time;
}
Camera.cpp
C++
1
2
3
4
5
6
7
#include "Camera.h"
...
const char *Camera::positionStr[] = {
    "Fixed",
    "Interpolated",
    "Spline",
};
Вот такой код, однако все равно выдает lnk2001
Возникает ошибка линковки 2001
 
Текущее время: 17:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru