Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 22:17   #1
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию Ошибка в использовании методов класса

Вот такие ошибки имеются .. похоже что неправильно что то написано в функциях plus,minus,umn1 в обращении к методу val .. подскажите что
Код:
#include "stdafx.h"

#include "iostream"
#include "ctime"

using namespace std;

class matrix{
public:
	matrix() : a(0) {}; // Initialize a = NULL
	matrix(int y){
		a=new double[y*y];
		n=y;
		m=n;
	}
	matrix(int r, int u){
		a=new double[r*u]; // r lines and u columns
		
		n=r;
		m=u;
	}
	~matrix()
	{
		if(a)
			delete [] a;
	} // Free the memory
        // Copy constructor & operator = you need to write too.

	double val(int i,int j){
		return a[i*m + j];
	}
	void putx(int i,int j, double r){
		a[i*m + j]=r;
	}
	void random_matrix(){
		srand((unsigned)time(0)); // srand out of the cycle
		for(int i = 0; i < n; i++)
			for(int j = 0; j < m; j++)
				putx(i, j, rand());
	}

	int N(){
		return n;
	}

	int M(){
		return m;
	}
	
private:
    double * a;
	int n,m,e;

};

matrix plus(matrix *a,matrix *b){
	matrix w(a->N(),a->M());
	for(int i=0;i<a->N();i++)
		for(int j;j<a->M();j++)
			w.putx(i,j,a->val+b->val);
	return w;

}

matrix minus(matrix *a,matrix *b){
	matrix w(a->N(),a->M());
	for(int i=0;i<a->N();i++)
		for(int j;j<a->M();j++)
			w.putx(i,j,a->val-b->val);
	return w;
}

matrix umn1(matrix *a,int y){
	matrix w(a->N(),a->M());
	for(int i=0;i<a->N();i++)
		for(int j;j<a->M();j++)
			w.putx(i,j,a->val*y);
	return w;
}

/*matrix * umn2(matrix *a,matrix *b){
	matrix w(a->N(),a->M());
	for(int i=0;i<a->N();i++)
		for(int j;j<a->M();j++)
			w.putx(i,j,a->val-b->val);
	return w;
}
*/


int main()
{
	matrix b(4);
	b.putx(2,2,700);
	cout << b.val(2,2);
	system("pause");
    

    return 0;
}
Код:
1>------ Build started: Project: laba2bc++, Configuration: Debug Win32 ------
1>  laba2bc++.cpp
1>laba2bc++.cpp(62): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(62): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(62): error C2296: '+' : illegal, left operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(62): error C2297: '+' : illegal, right operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(71): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(71): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(71): error C2296: '-' : illegal, left operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(71): error C2297: '-' : illegal, right operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(79): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(79): error C2296: '*' : illegal, left operand has type 'double (__thiscall matrix::* )(int,int)'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Jugger вне форума Ответить с цитированием
Старый 25.10.2011, 23:25   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
Печаль

Цитата:
Сообщение от Jugger Посмотреть сообщение
Вот такие ошибки имеются ..
Код:
1>------ Build started: Project: laba2bc++, Configuration: Debug Win32 ------
1>  laba2bc++.cpp
1>laba2bc++.cpp(62): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(62): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(62): error C2296: '+' : illegal, left operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(62): error C2297: '+' : illegal, right operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(71): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(71): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(71): error C2296: '-' : illegal, left operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(71): error C2297: '-' : illegal, right operand has type 'double (__thiscall matrix::* )(int,int)'
1>laba2bc++.cpp(79): error C3867: 'matrix::val': function call missing argument list; use '&matrix::val' to create a pointer to member
1>laba2bc++.cpp(79): error C2296: '*' : illegal, left operand has type 'double (__thiscall matrix::* )(int,int)'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Цитата:
Сообщение от перевод
laba2bc++.cpp(62): Ошибка C3867: 'matrix::val': произведён вызов функции без указания списка аргументов; для создания указателя на член (если вдруг это то, что Вы собирались сделать на самом деле) используйте конструкцию '&matrix::val'
Цитата:
Сообщение от laba2bc++.cpp(62)
Код:
			w.putx(i,j,a->val+b->val);
0) Что непонятного в переведённом сообщении компилятора, если посмотреть на строку, к которой это сообщение относится?
1) Что предполагалось сделать в процитированной строке кода?
Abstraction вне форума Ответить с цитированием
Старый 26.10.2011, 01:29   #3
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию

Сейчас дошло
Забыл передать параметры методу val

Спасибо, все работает
Jugger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание методов вне класса Jugger Общие вопросы C/C++ 5 17.10.2011 20:19
Вектор из callback'ов методов класса Gongled Общие вопросы C/C++ 7 05.01.2011 16:29
вынос методов класса в дин библиотеки(dll) Пепел Феникса Общие вопросы C/C++ 8 07.12.2010 20:55
массив методов класса DartDayring Общие вопросы C/C++ 0 07.12.2010 20:00
Использование методов вне класса prikolist Общие вопросы C/C++ 12 07.05.2009 13:57