CMagazin.h
class ApplicationController < ActionController::Base
def default_url_options(options = {})
if controller_name == 'my_controller'
options[:test] = session[:test]
end
options
end
end
CMagazin.cpp
class CMagazin
{
char *m_nume;
list<CProdus*>List_produse;
public:
void printExpirabile( const char* data);
~CMagazin();
};
CAliment.h
void CMagazin::printExpirabile(const char *xdata)
{
list<CProdus*>::iterator it;
for (it = List_produse.begin(); it != List_produse.end(); ++it)
{
CProdus* p = *it;
if (p->get_tip()=='A')
{
**if (p > xdata)**->this problem
}
}
}
CAliment.cpp
class CAliment :
public CProdus
{
char *m_expirare;
public:
bool operator >(const char*date);
~CAliment();
};
关于“>” operator.in CMagazin.cpp的内容不使用我的运算符...我需要帮助。 我该怎么办?我在CMagazin类中需要“>”。 class CAliment它是派生自CProdus的类。
答案 0 :(得分:0)
答案是:在CProdus类中,必须将操作员声明为虚拟,而在 CMagazin.cpp
void CMagazin::printExpirabile(const char *xdata)
{
list<CProdus*>::iterator it;
for (it = List_produse.begin(); it != List_produse.end(); ++it)
{
CProdus* p = *it;
if (p->get_tip()=='A')
{
if (p->operator>( xdata))-> make this!
{
p->print();
}
}
}
}
答案 1 :(得分:0)
CProdus * p-是一个指针,需要使用该运算符的对象->试试(* p)> xdata
void CMagazin::printExpirabile(const char *xdata)
{
list<CProdus*>::iterator it;
for (it = List_produse.begin(); it != List_produse.end(); ++it)
{
CProdus* p = *it;
if (p->get_tip()=='A')
{
if ((*p)>( xdata))-> make this!
{
p->print();
}
}
}
}