我在一个h文件中声明了一个类,在cpp文件实现它,在主函数调用它时报错
//1.h#ifndef_1_H#define_1_H#include<iostream>usingnamespacestd;classA{public:A(inta,i...
//1.h
#ifndef _1_H
#define _1_H
#include <iostream>
using namespace std;
class A{
public:
A(int a,int b,int c):a(a),b(b),c(c){};
void print(A *a);
private:
int a,b,c;
};
#endif
//s2.cpp
#include "1.h"
void class A::print(A *a)
{
cout<<a->a<<"\t"<<a->b<<"\t"<<a->c<<"\n";
};
//s.cpp
#include "1.h"
int main()
{
A a(1,2,3);
a.print(&a);
return 0;
}
build时报错:s.obj : error LNK2001: unresolved external symbol "public: void __thiscall A::print(class A *)" (?print@A@@QAEXPAV1@@Z) 展开
#ifndef _1_H
#define _1_H
#include <iostream>
using namespace std;
class A{
public:
A(int a,int b,int c):a(a),b(b),c(c){};
void print(A *a);
private:
int a,b,c;
};
#endif
//s2.cpp
#include "1.h"
void class A::print(A *a)
{
cout<<a->a<<"\t"<<a->b<<"\t"<<a->c<<"\n";
};
//s.cpp
#include "1.h"
int main()
{
A a(1,2,3);
a.print(&a);
return 0;
}
build时报错:s.obj : error LNK2001: unresolved external symbol "public: void __thiscall A::print(class A *)" (?print@A@@QAEXPAV1@@Z) 展开
展开全部
不妨改一下头文件名,以字母开头,头文件和cpp文件用相同的文件名
更多追问追答
追问
改了也不行呀,而且这个文件名字没有影响吧
追答
//s2.cpp 中的
void class A::print(A *a)
改成
void A::print(A *a)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-01-15
展开全部
void class A::print(A *a)
改成
void A::print(A *a)
改成
void A::print(A *a)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class定义结尾每家分号,应该(*this).a或者this->a。这和分不分文件没关系啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询