c++ vector练习程序编译有错误
#include<iostream>#include<vector>usingnamespacestd;classA{public:inta;intb;intc;A();...
#include<iostream>
#include<vector>
using namespace std;
class A
{
public:
int a;
int b;
int c;
A();
void fn()
{cout<<a<<" "<<b<<" "<<c<<" "<<endl;}
};
A::A()
{
a=0;
b=0;
c=0;
}
template<class A>
void main()
{
vector<A> va(3);
vector::iterator it=va.begin();
int i=1;
for(vector<A>::size_type ix=0;ix!=3;++ix)
{
(*it).a=i;(*it).b=i+1;(*it).c=i+2;
cout<<(*it).fn();
}
}
本人初学者,我就是想试试vector里面如何使用类对象的成员和成员函数。。。。 但是能编译,不能链接
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/1.exe : fatal error LNK1120: 1 unresolved externals 展开
#include<vector>
using namespace std;
class A
{
public:
int a;
int b;
int c;
A();
void fn()
{cout<<a<<" "<<b<<" "<<c<<" "<<endl;}
};
A::A()
{
a=0;
b=0;
c=0;
}
template<class A>
void main()
{
vector<A> va(3);
vector::iterator it=va.begin();
int i=1;
for(vector<A>::size_type ix=0;ix!=3;++ix)
{
(*it).a=i;(*it).b=i+1;(*it).c=i+2;
cout<<(*it).fn();
}
}
本人初学者,我就是想试试vector里面如何使用类对象的成员和成员函数。。。。 但是能编译,不能链接
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/1.exe : fatal error LNK1120: 1 unresolved externals 展开
1个回答
展开全部
首先,本人也是C++一菜鸟。谈下我的看法:
这个错误的根本原因我认为是你的函数模板定义引起的
template<class A>
void main()
{……}
// 这里,你定义了个模板,我们知道,函数模板的定义形式为:
Template <class或者也可以用typenameT>
返回类型 函数名(形参表)
{//函数定义体 }
显然,main()函数成为了你函数模板的一部分,因而link时出错。再深层次的原因有待高手解答。
对你的程序我做了如下几处改动,运行无问题。
//template<class A> // 第1处
int main(int argc, char** argv)
{
vector<A> va(3);
vector<A>::iterator it=va.begin(); // 第2处
int i=1;
for(vector<A>::size_type ix=0;ix!=3;++ix)
{
(*it).a=i;
(*it).b=i+1;
(*it).c=i+2;
(*it).fn(); // 第3处
}
return 0;
}
这个错误的根本原因我认为是你的函数模板定义引起的
template<class A>
void main()
{……}
// 这里,你定义了个模板,我们知道,函数模板的定义形式为:
Template <class或者也可以用typenameT>
返回类型 函数名(形参表)
{//函数定义体 }
显然,main()函数成为了你函数模板的一部分,因而link时出错。再深层次的原因有待高手解答。
对你的程序我做了如下几处改动,运行无问题。
//template<class A> // 第1处
int main(int argc, char** argv)
{
vector<A> va(3);
vector<A>::iterator it=va.begin(); // 第2处
int i=1;
for(vector<A>::size_type ix=0;ix!=3;++ix)
{
(*it).a=i;
(*it).b=i+1;
(*it).c=i+2;
(*it).fn(); // 第3处
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询