Я начинающий, подскажите как...(Все вопросы начинающих - постить только здесь!!!)
при помоши IWebBrowser (если под виндами) как его подключит, зависит от IDE
#include "stdafx.h"
#include "iostream"
int main()
{
cout << "Hello world!\n";
return 0;
}
ошибку выдаёт в строке 1>d:\c++\4\4\4.cpp(10) : error C2065: 'cout' : undeclared identifier
В книге C++ за 21 день написано что все примеры в книге даны для С++ 6.0, но примеры из другой книги нормально компилируются.
#include "iostream"
using namespace std;
int main()
{
cout << "Hello world!\n";
return 0;
}
А ты попробуй разобраться (любая книга по С++), что делает эта строчка, и не надо будет задавать глупых вопросов.
Задача: Бесконечный цикл который должен останавливаться по нажатию клавиши, если клавиши не нажимаются должен крутится без остановки.
Подскажите аналог функции, ungetch() из С++, для C#. Или направьте на нужный путь. (интернэт копал; МСДН молчит, а может я его не понял).
Спасибо.
Мужик - я думаю, что не смотря, что до конца года еще долго - но ты имеешь все шансы победить в номинации - Самый тупой вопрос года. :) Если не всего прошедшего столетия :)
Задача: Бесконечный цикл который должен останавливаться по нажатию клавиши, если клавиши не нажимаются должен крутится без остановки.
Подскажите аналог функции, ungetch() из С++, для C#. Или направьте на нужный путь. (интернэт копал; МСДН молчит, а может я его не понял).
Спасибо.
Я конечно понимаю, что мне никто не обязан отвечать, но хоть прокомментируйте... скажите в какую сторону искать...
3. Почему void main(), а не int?
В стандарте чётко определено, что возвращаемое значение обязано быть int, но не все компиляторы за этим следят.
Поэтому я и написал вначале: "Эта программа написано на хитром диалекте или в ней куча ошибок". А причин писать программы на устарешем диалекте, не соответствующем стандарту, я не вижу.
Вообще, я сам начинающий программист на c++, еще часто ошибаюсь, так что, если где-то немного наврал - извините.
Как из дочернего класса достучаться до переменной родительского?
Например в главном классе создаём новый диалог:
bool shown;
child.Show();
shown = true;
В дочернем классе по нажатию на кнопку "закрыть", хочу передать значение переменной основного класса shown.
Логично было бы предположить что нужно делать примерно так:
//MainClass main - основная форма.
main.shown = false;
Но так неправильно.
А как правильно?
Как из дочернего класса достучаться до переменной родительского?
Например в главном классе создаём новый диалог:
bool shown;
child.Show();
shown = true;
В дочернем классе по нажатию на кнопку "закрыть", хочу передать значение переменной основного класса shown.
Логично было бы предположить что нужно делать примерно так:
//MainClass main - основная форма.
main.shown = false;
Но так неправильно.
А как правильно?
Реализовать метод доступа к данным родительского класса. Вопрос а зачем получать доступ к переменным родителя?
Например, как в этом случае, который описал я, необходима переменная
которую смогут писать/читать все классы.
Имхо всё логично.
Булевскую переменную, которая показывает открыто ли окошко или нет
желательно обновлять с обеих классов.
которую смогут писать/читать все классы.
Имхо всё логично.
Булевскую переменную, которая показывает открыто ли окошко или нет
желательно обновлять с обеих классов.
Незнаю как на счет "логично" - игнорирование принципов ООП в ООП-языке как раз логичным и не выглядит :) Я о "писать/читать все классы"
Но в твоей задаче - если переменная базового класса объявлена как закрытая (private)- то нужно организовать публичный(или защищенный) метод для доступа к ней. Если же она объявлена как защищенная (protected) или как доступная(pablic) - то класс-наследник может обращаться к ней непосредственно. Т.е. например:
protected:
int shown;
...
public:
A ();
};
class B:public A{
void SetShow(){shown = true;}
}
Но в твоей задаче - если переменная базового класса объявлена как закрытая (private)- то нужно организовать публичный(или защищенный) метод для доступа к ней. Если же она объявлена как защищенная (protected) или как доступная(pablic) - то класс-наследник может обращаться к ней непосредственно. Т.е. например:
protected:
int shown;
...
public:
A ();
};
class B:public A{
void SetShow(){shown = true;}
}
Ок, спасибо.
Думал можно обойтись без методов.
А существует ли Visual C в гугле искал но ничего не нашел.
Если что-нибудь такое существует оставьте пожалуиста ссылку.
Спасибо.
А существует ли Visual C в гугле искал но ничего не нашел.
Если что-нибудь такое существует оставьте пожалуиста ссылку.
Спасибо.
В догонку к своему вопросу:
Если необходимо с контрола дочерней формы передать содержимое
контролу родительской формы, то тоже следует использовать собственные методы класса или есть вариант попроще?
т.е. нужно что бы получилось:
parent.TextBox1.Text = child.TextBox2.Text;
Ок, с начала.
Есть родительская форма, с которой я вызываю другую форму.
На на обеих формах есть "эдит боксы".
Я хочу что бы в дочерней форме по клику на кнопку считывалось значение эдита и передавалось в эдит бокс родительской формы.
Есть родительская форма, с которой я вызываю другую форму.
На на обеих формах есть "эдит боксы".
Я хочу что бы в дочерней форме по клику на кнопку считывалось значение эдита и передавалось в эдит бокс родительской формы.
Через метод класса. Если указатель на объект объвлен общедоступным - то можно обращаться к нему на прямую. Но ИМХО это некрасиво и чревато ошибками. Реализуй метод для доступа
С и С++
C++ учебный курс (C++ учебный курс.rar)
http://depositfiles.com/files/4108111
Ален И. Голуб «Правила программирования на Си и Си++» (cpprules.zip)
http://depositfiles.com/files/4108117
Дональд Бокс. «Сущность технологии СОМ» (EssentialCOM_rus.rar)
http://depositfiles.com/files/4108121
Alexander Stepanov «Standard Template Library» (STL.rar)
http://depositfiles.com/files/4108128
Пока пользуюсь таким методом: нахожу элемент с нужным ключом, удаляю его, вставляю новый элемент с новым ключом, но старым значением. Может есть какой-нибудь более красивый метод?
Пока пользуюсь таким методом: нахожу элемент с нужным ключом, удаляю его, вставляю новый элемент с новым ключом, но старым значением. Может есть какой-нибудь более красивый метод?
Изменить ключ элемента можно только одним способом:заменить старый элемент новым с тем же значением.
Для этого найти элемент функцией find.Удалить его функцией erase и вставить новый элемент insert.Все правильно делаешь.
Единственное я бы добавил - последовательность действий - вначале вставьте а затем удалите.
Не понял. То есть попытаться вставить, если получилось, то старый элемент удалить, иначе нечего не делать или выдать ошибку?
Угу.
Кроме того это более рационально - вставка происходит перед элементом. А затем он просто удаляется.
Возьмем к примеру Delphi, в нем есть две специальные йункции для этого:---chr() и ord().Исполузуй их;) .
Примерный алгоритм здесь:
Сначало узнаем ASCII код 'Z' после чего смотрим в таблицу ASCII, узнаем код клавиши 'Я'.
Узнаем скока нужно прибавит(I) чтобы получит код клавиши 'Я':
I=код 'Я'-код 'Z', после чего прибавляем 'I' к коду 'Z'. И вобщем то получаем код клавиши 'Я'.:)
Возьмем к примеру Delphi, в нем есть две специальные йункции для этого:---chr() и ord().Исполузуй их;) .
Примерный алгоритм здесь:
Сначало узнаем ASCII код 'Z' после чего смотрим в таблицу ASCII, узнаем код клавиши 'Я'.
Узнаем скока нужно прибавит(I) чтобы получит код клавиши 'Я':
I=код 'Я'-код 'Z', после чего прибавляем 'I' к коду 'Z'. И вобщем то получаем код клавиши 'Я'.:)
Тогда уже лутчше что то типа
{
if(in==81){return(201);}//для Q-Й
............
if(in==46){return(222);}
else{return(in);}
}
{
string strEng = "qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>?~";
string strRus = "йцукенгшщзхъфывапролджэячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё";
int iFChar;
iFChar = strEng.find(ch);
if (iFChar != string::npos)
ch = strRus[iFChar];
return ch;
}
{
private:
char *name;
//......
public:
employee *next; // вот эта строка меня и беспокоит
void print() const;
};
class manager: public employee
{
private:
//.......
public:
void print() const;
};
Вы не могли бы объяснить, зачем в этом примере указатель на объект базового класса: employee *next; помещен в поле этого класса И в каких случая вообще используеться такой прием ? Ведь обычно мы создаем указатель на объект базового класса в МЕИНЕ, а уже потом с помощью этого указателя обращаемся к производным классам, задействуем виртуальные методы и т.д Ну а если мы создаем указатель на базовый класс в самомо класса, то как тогда будет выглядеть работа с этим классом и с его наследниками в МЕИНЕ ?
Заранее спасибо за ответ !
{
private:
char *name;
//......
public:
employee *next; // вот эта строка меня и беспокоит
void print() const;
};.................
Вы не могли бы объяснить, зачем в этом примере указатель на объект базового класса: employee *next;
Заранее спасибо за ответ !
здесь у вас насколь я понял имеет место быть односторонний список объектов типа employee.
т.е. *next указывает на следующий объект в списке, а не на сам объект. работа со списком получается в цикле, где указателю на текущий эл-т списка в конце цикла присваивается этот самый next.
нас учили что удобно у последнего эл-та в списке
next=NULL
и удобно понимать где список закончился.
#include "iostream"
using namespace std;
void main()
{
stack s1;//и чё оно здесь ругается?
Знающие, подайте элементарный пример использования стека в Visual-е.
#include <stack>
using namespace std;
int main()
{
stack<int> s;
s.push(1);
s.push(2);
s.push(3);
cout << s.top() << endl;
s.pop();
s.top() = 22;
s.push(4);
s.push(43);
while(!s.empty()){
cout << s.top() << ' ';
s.pop();
}
return 0;
}
в книжках и букварях:D