Все нормально, если иметь ввиду что данные объявленные внутри такого блока недоступны вне его. Хоть стиль мягко говоря странный. Многие вопросы по Windows отпадут, если посмотреть тут
Пожалуй буду отвыкать от него! У меня вопрос!У меня есть касс в файле classes.h и экземпляры классы с данными в main.cpp.Как можно экземпляры класса запихать в classes.h или в другой файл.Я пробовал так:создавал в classes.h функцию туда все экземпляры с данными засовывал.И создавал прототип функции.Однако когда я хотел вызвать функцию из класса, которая печатает данные экземпляра....компилятор подчёркивает имя экземпляра и пишет: идентификатор не определён! Так можно ли экземпляр класса с его данными выносить в отдельный файл? FinderX - Android Аркада
Сообщение отредактировал goldsphere - Четверг, 29 Марта 2012, 17:05
Я не совсем понимаю, что ты пытаешься сделать. Выложи своий нерабочий код, может так станет яснее. Многие вопросы по Windows отпадут, если посмотреть тут
Если я правильно понял, то у тебя нету имплиментации метода из класса. Хотя я не уверен что правильно понял, с кодом будет понятнее. Java/C++/Unity(C#) Programmer. Мой блог MightMortal.RU
Выделенное жирным шрифтом надо перенести в classes.h или любой другой файл, но так, чтобы в main.cpp работала функция x.metodPrint();и можно было работать с данными экземпляра... Возможно ли это?Если да, то как?Повторяю - код лишь отображает смысл моего вопроса, он не является исходным! В принципе для меня это не обязательно, но для оптимизации кода не помешает! FinderX - Android Аркада
Сообщение отредактировал goldsphere - Четверг, 29 Марта 2012, 18:34
Нет, смысл был в том, чтобы убрать эти строки из main.cpp и сохранить их в другом файле...так как у меня в проекте слишком много экземпляров и данных принадлежащих к ним.Словом - "разгрузить этот файл""
Ну так мы это и делаем. Относительно строк
Code
x.member_1 = 180; x.member_2 = 120;
Их мало куда-то сохранить, их еще нужно выполнить. Ты можешь добавить в класс метод init(), который будет выполнять это присваивание или чтоб это происходило в конструкторе: class.h
Теперь при создании экземляра класса first, его членам автоматически присваиваются значения 100 и 200 соответственно. Многие вопросы по Windows отпадут, если посмотреть тут
Сообщение отредактировал Нохчи - Четверг, 29 Марта 2012, 18:54
Всем привет!У меня такой вопрос мне нужно получить рандомное число от 1 до 6?Я так понимаю надо занести числа от 1 до 6 в массив и выбрать оттуда случайное звено, но как это сделать?Получался примерно такой код:
Code
int n = 6; int arr[n] = {1,2,3,4,5,6}; int r = ... //Задать переменой r случайное число из массива int y = arr[r]; //Вывод случайного числа
goldsphere, пробуйте, если вам говорят насчет какой то незнакомой функции или вообще любое слово, сначала вбить его в гугл, а потом спрашивать. Ведь вы на специализированном сайте гораздо больше поймете и большему научитесь. Например, вам подсказали, что для генерации сл. числа нужна функция rand(). Так введите в поиск "c++ rand() описание". Тыкайте на понравившийся название в поиске (вот например мне понравился этот сайт). А там читаете полностью информацию о необходимом. Но если вам не понравилось объяснение, не беда, идите опять в поиск и тыкните на название другого сайта. Удачи)
В чем, собственно, проблема? delete не вызывает деструктор. Память то он очищает, но, какого лешего он не вызывает деструктор? Если явно вызвать деструктор, то он вызывается.
Буду рад выслушать разные предложения по этому поводу. Самому интересно из-за чего это может быть.
P.s. гугл не помог.
Добавлено (01.04.2012, 12:58) --------------------------------------------- Всё. Проблема решена. Сорри за топик
Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
Сообщение отредактировал Aikidos - Воскресенье, 01 Апреля 2012, 12:38
Подскажите мне по такому вопросу,имеется класс абстрактный класс стек,в котором 2 виртуальные функции,и позже обьект этого абстрактного класса является аргументом,получается что при этом в качестве аргумента может быть любой производимый класс,а функции будут доступны только те,которые определенны в базовом классе как виртуальные так?и еще вопрос если класс является абстрактным,то все функции обязанные быть читсто виртуальными,и не могут быть только виртуальными.и последний вопрос - если в классе есть виртуальная функция работающая с переменной с доступом приват-тогда переопределив ее в производимом классе мы можешь работать с этой переменной(она с доступом приват в базовом классе,а функция виртуальная) П.с вот код для понимания моего вопроса:
Code
class stack { public: virtual void push(int) = 0; virtual int pop() = 0; private: int *stack_buff; int upper; };
class array_stack : public stack { // ...... };
class my_stack : public stack { //..... }
void my_func(stack arg) // можем передать и my_stack и array_stack { arg.push(12); //.... }
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)