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

как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? - C++

Восстановить пароль Регистрация
 
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,267
17.01.2011, 01:11     как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? #1
Друзья! Вот код, компилятор ругается на строку ff (f3);
В общем переменную f3 необходимо объявлять без параметров, а потом передавать её в функцию.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using namespace std;
 
class Fraction {
public:
 Fraction() {int g= 0;}
 friend void ff (Fraction &fr);
};
 
 
int main() {
 Fraction f3();
 ff (f3);
 return 0;
}
 
void ff (Fraction &fr) {};
Чё-то я не припомню ограничения в синтаксисе на такую передачу параметров. И потом: f3 не фикция, а реально существующий объект, ну и что, что созданый без параметров? В нём определена переменная g и под неё выделена память и она инициализирована. Так что f3- полноценный объект, непонятно почему компилятор ругается на такой вызов ff. Спасибо тык скыть заранее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2011, 01:11     как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован?
Посмотрите здесь:

C++ при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"?
C++ Функция, дружественная классу, вложенному в шаблонный класс, или как написать итератор.
C++ Как сделать, чтобы функции работали "независимо" одна от другой?
Как сделать, так чтобы i и j можно было вводить самому "i" И "j" в цикле, есть программа C++
Как сделать чтобы при нажатии на кнопку "PlayWarcraft" заходил на мой сервер через IP adress C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
17.01.2011, 02:32     как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? #2
Распространенная ошибка.
C++
1
2
Fraction f3(); // прототип функции
Fraction f3; // создание объекта с использованием конструктора по-умолчанию
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,267
17.01.2011, 02:48  [ТС]     как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? #3
Большое спасибо.
А прототип какой функции?

То есть я так понимаю, что я объявляю (невльно) функцию f3, которая возвращает переменную типа Fraction и не принимает ни одного параметра. Так?
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
17.01.2011, 03:18     как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? #4
Цитата Сообщение от kravam Посмотреть сообщение
То есть я так понимаю, что я объявляю (невльно) функцию f3, которая возвращает переменную типа Fraction и не принимает ни одного параметра. Так?
Именно так.

Добавлено через 2 минуты
С++ просто создан для того, чтобы на нем ошибаться.
Yandex
Объявления
17.01.2011, 03:18     как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован?
Ответ Создать тему
Опции темы

Текущее время: 13:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru