| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 315 人关注过本帖
标题:typedef有关问题,请各位多多指教
只看楼主 加入收藏
kaixinguo314
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2012-9-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:3 
typedef有关问题,请各位多多指教

#include<iostream>
using namespace std;
class Book
{
private:
    static int count;
public:
    Book(char *tile)
    {
    cout<<"售出的图书:"<<tile<<endl;
    count++;
    }
    static int Getcount()
    {
    return count;
    }

};
int Book::count = 0;

int main()
{
typedef char String[100];
String titles[]={"JAve1","Jave2","Jave3"};//当把String titles[]换成String *titles会出错
for(int i = 0;i<3;i++)
{                                //如何判断titles[i]判断为空,从而创建内存空间
new Book(titles[i]);
    }
cout<<Book::Getcount()<<endl;
return 0;
}
搜索更多相关主题的帖子: return public include 图书 private 
2012-09-08 11:36
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:20 
第一个问题,你后面明显是在初始化一个数组,换成 String * 当然不行了。

没太明白第二个问题是想干什么。我理解是不是就先判断一下 titles[i] != NULL 再判断一下 strlen(titles[i]) > 0 就行了?
2012-09-08 23:01
kaixinguo314
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2012-9-8
收藏
得分:0 
回复 2楼 pangding
我查了typedef char Sring[255]; String *titles;没有语法错误
我自认为
typedef char String[100];
 String titles[]的理解为上述语句等效为
titles[][100];
至于第二个问题我是想说明如果语句改为
for(int i = 0;i<4;i++)//i的值不为i<3
 {                              
 new Book(titles[i]);
     }
运行结果将出现垃圾值,你有没有好的方法。
O(∩_∩)O谢谢


2012-09-09 23:08
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
要想知道有没有语法错误只要编译一下就行了,不用查什么东西。
String *titles; 应该是相当于 char (*titles)[255];
String titles[] 是 char titles[][255];
所以你的理解是对的,如果没语法错误用就是了。

主要是你清楚自己在干什么就行。typedef 主是是为了增加程序清晰性的。
比如你要用一个数组,就 int a[2] = { 1, 2 }; 就可以了。没必要用指针,这不仅降低可读性,也降低自明性。


后一个问题是越界了。int a[2] = { 1, 2 } 就只有 a[0], a[1] 这两个元素,没有 a[2]。
2012-09-09 23:31
快速回复:typedef有关问题,请各位多多指教
数据加载中...
 
   



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

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