| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:编译器好像是吧“<<”这个符号认错了
只看楼主 加入收藏
丶浅唱
Rank: 2
等 级:论坛游民
帖 子:27
专家分:20
注 册:2014-3-18
结帖率:63.64%
收藏
已结贴  问题点数:18 回复次数:7 
编译器好像是吧“<<”这个符号认错了
以下是原码:
#include<iostream>
#include<string.h>
using namespace std;
class CBuliding
{
    string name;
public:
    void set(string strName);
    void display();
};
void CBuliding::display()
{
    cout<<"建筑是"<<name<<endl;//  就是这里,书上说这里是内联函数。
}
void CBuliding::set(string strName)
{
    name=strName;
}
class CBridge:public CBuliding
{
    float length;
public:
    void setLength(float l)
    {
        length=l;
    }
    void display()
    {
        CBuliding::display();
        cout<<"其长度是"<<length<<"米"<<endl;
    }
};
void main()
{
    CBuliding buliding;
    CBridge bridge;
    buliding.set("中国古建筑");
    buliding.display ();
    bridge.set("中国赵州桥");
    bridge.setLength(static_cast<float>(60.40));
    bridge.display();
    return;
}


【cout<<"建筑是"<<name<<endl;】
这里如果是把name去掉的话就能编译通过。如果加进去就会提示:
binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable co
nversion)
实在是想不通是哪里错了:
搜索更多相关主题的帖子: display include public 编译器 建筑 
2014-08-22 20:05
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:4 
#include<string>
2014-08-22 22:50
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:4 
回复 2 楼 apull
有些编译器同时支持 c/c++编译  所以这个没错

hl928452957@gmail点com

2014-08-23 07:32
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:0 
void main()  请不要再返回了  return .  这里void的意思就是没返回值. 但你是 又 return.
而且  return 要加返回值.    return 1;  return a;之类的   不能直接return;
通常是return 0;

hl928452957@gmail点com

2014-08-23 07:35
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:4 
不知道你是用的是什么编译器。
假设编译器不能按某种约定识别名字空间就加
cout<<"建筑是"<<this->name<<endl;
试试

name可能被识别成外部变量。
2014-08-25 09:56
码珠砂华
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2014-6-12
收藏
得分:4 
name是私有成员  怎么能在公有函数里调用呢
2014-08-27 10:03
l3456
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:133
注 册:2014-4-16
收藏
得分:4 
#include<string.h>//c++为什么还要加.h????而且下面有 using namespace std了!!!去掉.h就可以了
 using namespace std;

走向光明的菜鸟学生,励志成为新一代程序猿
2014-08-27 10:42
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 6 楼 码珠砂华
Name 是私有成员怎么能在公有函数里调用呢?咦

想抽苏烟了。
2014-09-11 12:36
快速回复:编译器好像是吧“<<”这个符号认错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038319 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved