首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

生手C++排错

2013-08-14 
新手C++排错本帖最后由 mstlq 于 2013-08-07 17:57:37 编辑#include iostreamusing namespace stdclass

新手C++排错
本帖最后由 mstlq 于 2013-08-07 17:57:37 编辑

#include <iostream>
using namespace std;
class Student
{
public:
Student(int number1,string name1,float score1)
{
number=number1;
name  =name1;
score =score1;
     }
void print()
{
cout<<"number:"<<number<<endl;
cout<<"name:"<<name<<endl;
cout<<"score:"<<score<<endl;
}
private:
int number;
string name;
float score;
};
class UStudent:private Student
{
public:
     UStudent(int number1,string name1,float score1,string major1):
  Student(number1,name1,score1)
  {
  major=major1;
  }
  Student::print;
private:
string major;
};
int main()
{
UStudent stu(23,"allen",87,"CS");
stu.print();
return 0;
}














显示:1>------ 已启动生成: 项目: abc, 配置: Debug Win32 ------
1>生成启动时间为 2013-8-5 16:47:25。
1>InitializeBuildStatus:
1>  正在对“Debug\abc.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  ckj.cpp
1>c:\documents and settings\administrator\桌面\ckj\abc\abc\ckj.cpp(15): error C2679: 二进制“<<”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)
1>          d:\microsoft visual studio 10.0\vc\include\ostream(679): 可能是“std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(726): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)”
1>          with


1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(764): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(811): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(937): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(944): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)”


1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(951): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(958): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(968): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>,std::string>(std::basic_ostream<_Elem,_Traits> &&,_Ty)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>,
1>              _Ty=std::string
1>          ]


1>          d:\microsoft visual studio 10.0\vc\include\ostream(1085): 或       “std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const std::error_code &)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(186): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(192): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(199): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))”
1>          with


1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(206): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(226): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(260): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(280): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(int)”
1>          with


1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(305): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned int)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(325): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(345): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned long)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(366): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)”
1>          with


1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(386): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(407): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(float)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(427): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(double)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(447): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)”
1>          with


1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(467): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft visual studio 10.0\vc\include\ostream(487): 或       “std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)”
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          尝试匹配参数列表“(std::basic_ostream<_Elem,_Traits>, std::string)”时
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>
1>生成失败。
1>
1>已用时间 00:00:00.39
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


[解决办法]
1>c:\documents and settings\administrator\桌面\ckj\abc\abc\ckj.cpp(15): error C2679: 二进制“<<”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)


#include<string>

[解决办法]
#include<string>
[解决办法]

引用:
你私有继承,还调用print,肯定通不过,私有继承后,你只能在派生类里面调用基类的public或protected成员,不能在对象里调用.

正解!
#include <string>
[解决办法]
#include<string.h>
[解决办法]
一大串的错误都是没有引入#include <string>
其余的没有动在VS2010编译并运行通过了,你的那个在UStudent里面的Student::print;觉得这不是函数声明,而是函数指针声明,本来在私有继承下Student的所有东西在UStudent中都会变成私有的,所以理论上你的UStudent对象是不能调用print()的,但是可以了,就是因为你的那句声明。

热点排行