Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Hubbitus
Статус: 7-й класс
Рейтинг: 99
∙ повысить рейтинг >>
Micren
Статус: Практикант
Рейтинг: 98
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 45
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1273
от 02.04.2009, 04:05

Администратор:Dr_Andrew
В рассылке:Подписчиков: 503, Экспертов: 47
В номере:Вопросов: 3, Ответов: 3

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 163402: Здравствуйте. Помогите разобраться пажалуста. я создал класс где перегрузил оператор = и+ и при выражении k=p+v; происходит ошибка как зделать ддопустимым это выражение ...


Вопрос № 163409: Здравствуйте. У меня Microsoft Visual Studio C++ 2008 Express Edition. Имеется форма с textBox1 и textBox2 на этой же форме нажимаем на button1. Должно происходить: создаётся SQL бд с одной таблицей тремя полями 1-автоинкремент 2-фамилия 3 имя...
Вопрос № 163414: Здравствуйте уважаемые эксперты мопогиите разрешить вопрос можно ли использовать шаблоны при перегрузке операторов >> (Пример friend istream& operator >>(istream& input,Mega<T,T2,T3,T4,T5>& k); если да то как и можно здела...

Вопрос № 16 3.402
Здравствуйте. Помогите разобраться пажалуста. я создал класс где перегрузил оператор = и+
и при выражении k=p+v; происходит ошибка как зделать ддопустимым это выражение

Приложение:

Отправлен: 27.03.2009, 18:17
Вопрос задал: Lordfoks (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Micren
Здравствуйте, Lordfoks!
Результат выполнения операции сложения не может быть lvalue поэтому необходимо добавить const в Table operator =(const Table& t); тогда такое выражение будет допустимым.
Кстати, MS VC++ не требует такого соответствия и программа будет компилироваться нормально.
Код:

#include <string>
#include <iostream>
#include <conio.h>

using namespace std;

class Table
{ public:
Table(){};
Table(string a1,string b1,int c,double d1);

friend ostream& operator <<(ostream& vivod,Table& f);
friend istream& operator >>(istream& vvod, Table& f);
Table operator +(Table& t);
Table operator =(const Table& t);
bool operator ==(Table& t);
private:
string a;
st ring b;
int c;
double d;
};


int main(int argc, char* argv[])
{
Table p("a","b",1,2),k,v("c","d",3,4);
k=p+v;
cout<<k;

getch();
return 0;
}
//---------------------------------------------------------------------------
Table:: Table(string a1,string b1,int c1,double d1):a(a1),b(b1),c(c1),d(d1)
{}

ostream& operator <<(ostream& vivod,Table& f)
{cout<<"Famili9 "<<f.a<<" "
<<"Inicial "<<f.b<<" "
<<"God "<<f.c<<" "
<<"Oklad "<<f.d<<" ";
return vivod;
}

istream& operator >>(istream& vvod, Table& f)
{cout<<"Vvedite Famili9,Inicial,God,Okald ";
cin>>f.a>>f.b>>f.c>>f.d;
return vvod;
}

Table Table:: operator +(Table& t)
{ string h,l;int f;double s;
h=a+t.a;
l=b+t.b;
f=c+t.c;
s=d+t.d;
return Table(h,l,f,s);
}

bool Table:: operator ==(Table& t)
{return (a==t.a && b==t.b && c==t.c && d==t.d);
}

Table Table::operator =(const Table& t)
{ a=t.a;
b=t.b;
c=t.c;
d=t.d;
return *this;
}
Ответ отправил: Micren (статус: Практикант)
Ответ отправлен: 27.03.2009, 18:33

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246198 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    спс большое


    Вопрос № 163.409
    Здравствуйте.

    У меня Microsoft Visual Studio C++ 2008 Express Edition. Имеется форма с textBox1 и textBox2 на этой же форме нажимаем на button1. Должно происходить: создаётся SQL бд с одной таблицей тремя полями 1-автоинкремент 2-фамилия 3 имя. Фамилия и имя берутся из textBox-ов и заносятся в бд.
    Подскажите мне пожалуйста пример кода для обучения. Или хотя бы ссылочку на какую нибудь обучалку.

    Заранее благодарю.
    Отправлен: 27.03.2009, 19:01
    Вопрос задал: Shaman_888 (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Vivikas
    Здравствуйте, Shaman_888!
    Вы пишите:"… нажимаем на button1... создаётся SQL бд с одной таблицей тремя полями ..."
    Либо я Вас неправильно понимаю, либо...
    Сначала создайте БД нужного типа, а уже потом надо подключить свое приложение к этой БД.
    Среда данной версии позволяет подсоединяться к двум типам баз данных: MS Access и MS SQL Server. А общение с базами данных происходит по технологии ADO.NET, когда чтобы добраться до соответствующей БД, формируется специальная строка, называемая строкой соединения с БД (Connecting String). Она формируется с помощью самой среды через диалоговые окна общения с пользователем. Вообще, можно на форму поместить компонент DataSet (наборы данных (НД) - это такие объекты, через которые происходит подключение приложения к БД, при этом информация из БД загружается в НД, который затем станет обеспечивать данными Ваше приложение из локальной кэш-памяти, т е с НД можно работать даже тогда, когда приложение отсоединено от БД, при чем обновленные данные могут быть снова отосланы БД, когда приложение подсоединится к ней) на форму, но удобнее воспользоваться окном Data Source (источники данных), которое открывается после выполнения команды Data/Show Data Source главного меню. В этом окне надо установить курсор мыши в любую свободную точку его поля и открыть контекстное меню окна, где и выполнить опцию Add New Data Source. В результате откроется диалоговое окно мастера создания конфигурации НД. Если щелкнуть на Database и нажать кнопку Next, то появится новое окно для обеспечения подсоединения к БД.
    В результате, если Вы все правильно сделаете, то в окне Data Source увидите подключенные источники данных (таблицы, поля, по виду идентичные БД, но это уже будет сформированный Вами НД, через который приложение и будет общаться с БД). Нужные таблицы или поля можно перетянуть мышью из окна Data Source на форму. Однако средой предусмотрены различные способы отображения таблиц в форме – кроме указанного Вами TextBox, это DataGridView и Customize. Вид отображения данных можно выбрать из выпадающего списка, который открывается, если щелкнуть мышью на соответствующем элементе таблицы (ее названии или на названии любого из ее полей).
    Наверное, несколько запутанно я пишу (прошу прощения, по-другому никак), да и не получится сразу все охватить и в двух словах описать, но в любом случае общая технология работы с НД в данной среде такова: сначала формируются сами НД, а затем эти наборы связывают с формами приложения.
    Более подробно этот процесс описан в книге «С/С++ и MS Visual C++ 2008 для начинающих» (автор - Б.Пахомов) или поищите другие источники по технологии ADO.NET
    Ответ отправила: Vivikas (статус: 1-й класс)
    Ответ отправлен: 28.03.2009, 20:35

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246257 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вопрос № 163.414
    Здравствуйте уважаемые эксперты мопогиите разрешить вопрос
    можно ли использовать шаблоны при перегрузке операторов >>
    (Пример friend istream& operator >>(istream& input,Mega<T,T2,T3,T4,T5>& k); если да то как
    и можно зделать так

    Приложение:

    Отправлен: 27.03.2009, 19:57
    Вопрос задал: Lordfoks (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Micren
    Здравствуйте, Lordfoks!
    Можно сделать, например, так:
    Код:

    #include <iostream>

    using namespace std;

    template<class T1,class T2>
    class Mega
    {
    private:
    T1 t1;
    T2 t2;
    friend istream& operator>>(istream& stream,Mega<T1,T2>& out)
    {
    T1 t1;
    T2 t2;
    stream>>t1>>t2;
    if(!stream.fail())
    {
    out.t1=t1;
    out.t2=t2;
    }
    return stream;
    }
    };

    int main()
    {
    Mega<int,double> testClass;
    cin>>testClass;
    return 0;
    }

    Что касается последней части вопроса, то если будет введено не число поток установит бит состояния failbit и что Вы хотите получить не понятно.
    Ответ отправил: Micren (статус: Практикант)
    Ответ отправлен: 27.03.2009, 20:59

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246206 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное