[C++][MFC]Problem z funkcją wirtualną w klasie.

0

Witam !

Mam klase macierzy dziedzicząca po wektorze :

#pragma once
#include "wektor.h"

class macierz :
	public wektor
{
private:
	int K, W;
	double *A;
	string Naz;

public:
	virtual macierz operator+(const macierz m2);
	virtual macierz operator-(const macierz m2);
	virtual macierz operator*(const macierz m2);
	virtual macierz operator*(const double l);
	virtual double operator()(int a, int b);

	friend ostream &operator<<(ostream &wy, const macierz &w);

	
	//opcjonalna funkcja wirtualna

	macierz(void);
	macierz(CString MACIERZ,CString NAZWA);
	~macierz(void);
};

Wszystko działa i pasuje jednak gdy chcę w miejsce
//opcjonalna funkcja wirtualna

wpisać :

virtual void max()
	{
	...
	}

to kod nie bangla, ponadto wyrzuca mi niezadeklarowanie WSZYSTKICH zmiennych ,obiektów i wskaźników w programie. Wyrzuca błędy w konstruktorach, destruktorach, przeciążeniach operatorów, nawet w deklaracji zmiennych klasy ;-(

Proszę o pomoc, nie wiem gdzie popełniam błąd.

Jest to projekt MFC w visual studio c++ 2008 pro.

--PANI--EDYTA--

Słuchajcie, rozwiązałem problem i zarazem nie. Gdy zmieniam nazwe funkcji na inną to jest ok, jednak zarówno "min", jak "max" powodują ten problem, a chciał bym tak nazwać funkcje. O co biega ?

0

A to nie problem z makrodefinicjami min i max w windows.h? Przed włączeniem windows.h/nagłówków MFC dodaj #define NOMINMAX.

0

Dzięki bardzo mistrzu ! Już płakałem, że nie potrafie funkcji wirtualnej zrobić ;p A powiedz co właściwie robią te makra (min, max) jeśli można jeszcze prosić ?

0

O ile mnie pamięć nie myli to robią to co zwykłe makra/funkcje min i max. Makra, jak to makra, są rozwijane w miejscu wstawienia, zamiast nazwy funkcji min/max miałeś rozwinięte makro do formy kodu zwracającego większą/mniejszą liczbę... czyli istny burdel.

1 użytkowników online, w tym zalogowanych: 0, gości: 1