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

Перегрузка ввода и вывода в классе матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ деление по модулю http://www.cyberforum.ru/cpp-beginners/thread708128.html
Вообщем пишу калькулятор и наткнулся на проблемку #include "stdafx.h" #include <tchar.h> #include <stdio.h> #include <iostream> #include <string.h> #include <conio.h> #include <windows.h> #include <stdlib.h>
C++ тамагочи на C++ Всем доброго времени суток, здравствуйте! Недавно загорелся желанием написать игру на С++, решил начать с тамагочи! Полазил по форумам поискал коды,нашел только в Delphi, да синтаксис не очень отличается, но все же не то.. Может у кого есть наработки, коды, пришлите пожалуйста или порекомендуйте литературу, которая может помочь, желательно в электронном виде.. Свои знания ооп и C++ оцениваю на 2+... http://www.cyberforum.ru/cpp-beginners/thread708117.html
Не понятно пару моментов C++
В целом программа поняла, но нужно кое-что уточнить! Зачем мы str присвоили strtok(b, " "); ? зачем в islower(str) стоит str ? И как работает это while (str = strtok(NULL," ")); ? #include <iostream> #include <cstring> int main() { char b = "So Many many: many, Words", s; char* str = strtok(b, " ");
C++ Можно ли создать простое окно с кнопкой и свернуть его в трей?
Подскажите, как реализовать на с++...Большая благодарность, если кинете примерный код.
C++ Посоветуйте книгу http://www.cyberforum.ru/cpp-beginners/thread708101.html
Добрый вечер всем! Посоветуйте книгу где есть хорошее описание операторов библиотеки <string.h> (strcpy,strlen,islower,strtok...)
C++ Можно ли создать окно? Можно ли на С++ написать окно? Если да, то как. Киньте, пожалуйста, пример, если можно. подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
25.11.2012, 02:43     Перегрузка ввода и вывода в классе матриц
Цитата Сообщение от Vlad1993 Посмотреть сообщение
friend istream& operator>>(istream &in,Matrix x);
как же ввод будет работать, если ты оператору аргумент передаёшь по значению? Или ты не знаешь, что аргументы передаваемые в функцию не изменяются вне её?
Пример:
C++
1
2
3
4
5
6
7
8
void Read(int x){
std::cin>>x;
}
int main(){
int number=5;//number присвоено 5
Read(number);//вводим с клавы 10
std::cout<<number;//number так и осталось 5
}
Твой случай абсолютно аналогичен. Для того, чтоб это исправить в С++ введены ссылки. В Си до этого использовались указатели вот так:
C
1
2
3
4
5
6
7
8
9
void Read(int* x){
scanf("%d", x)
}
int main(){
int number=5;//number присвоено 5
Read(&number);//вводим с клавы 10
printf("%d", number);//number успешно присвоилось 10
return 0;
}
Добавлено через 5 минут
Но, для удобства записи без лишних амперсантов и звёздочек, особенно при перегрузке операторов >>
В Си++ ввели понятие ссылка. Она определяется знаком &
C++
1
2
3
4
5
6
7
8
9
void Read(int &x){
std::cin>>x;
}
int main(){
int number=5;//number присвоено 5
Read(number);//вводим с клавы 10
printf("%d", number);//number успешно присвоилось 10
return 0;
}
C учётом сказанного, твои операторы должны быть объявлены так:
C++
1
friend istream& operator>>(istream &in,Matrix &x);//Обрати внимание, x теперь ссылка!
 
Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru