我是c ++的初学者,我对如何调用类实例有疑问...... 我用c ++编写了一个课程,但我不知道我是否用这种方法来调用它。 我在main中使用了一个指针,但这是一个很好的方法吗?我认为必须使用指针很奇怪,但我没有设法做同样的事情。
谢谢!
#include <iostream>
#include <vector>
class list_int{
public:
void run();
list_int(): liste(){};
private:
void print_menu();
void add_entier();
void print_list();
void suppr_last();
void print_last();
std::vector<int> liste;
};
void list_int::print_menu()
{
std::cout<<"Menu :"<<std::endl;
std::cout<<"1. Ajouter un entier"<<std::endl;
std::cout<<"2. Afficher la liste des entiers"<<std::endl;
std::cout<<"3. Supprimer dernier entier de la liste."<<std::endl;
std::cout<<"4. Afficher la dernière note tapée"<<std::endl;
std::cout<<"5. Quitter"<<std::endl;
}
void list_int::add_entier()
{
if(liste.size()>9)
{
std::cout<<"Liste remplie"<<std::endl;
return;
}
int entier;
std::cout<<"Entre l'entier a ajouter:";
std::cin>>entier;
liste.push_back(entier);
}
void list_int::print_list()
{
std::cout<<"La liste :"<<std::endl;
for(auto it=liste.begin();it!=liste.end();it++)
{
std::cout<<*it<<std::endl;
}
}
void list_int::suppr_last()
{
liste.pop_back();
std::cout<<"Dernier element supprimé"<<std::endl;
}
void list_int::print_last()
{
if(!liste.size())
{
std::cout<<"last element:"<<liste[liste.size()-1]<<std::endl;
}else{
std::cout<<"Liste vide"<<std::endl;
}
}
void list_int::run()
{
int choix;
bool continuer = true;
while(continuer)
{
print_menu();
std::cin>>choix;
switch(choix){
case 1:
add_entier();
break;
case 2:
print_list();
break;
case 3:
suppr_last();
break;
case 4:
print_last();
break;
default:
continuer = false;
}
}
}
int main()
{
list_int* liste = new list_int();
liste->run();
}
答案 0 :(得分:2)
不,这里没有必要使用指针;您只需创建一个list_int
对象并直接在其上调用run()
:
int main()
{
list_int liste;
liste.run();
return 0; // (don't forget to return)
}
此外,在使用指针时,在使用指针后应始终确保delete
指针。因此,在您的特定示例中,如果您选择保留指针,则必须在结束时调用delete liste
。