首页 > 其他 > 详细

我太水了~

时间:2015-11-16 22:49:35      阅读:282      评论:0      收藏:0      [点我收藏+]

我一直都知道自己的编程水平很low,但是今天还是再次刷新了自己对自己的认识,真是太水了。。。。

 

// 内部类

sp<xxx>,编译器一直抱错,xxx没有声明,问了同事L,因为xxx是另一个类的内部类,且是私有的,所以编译器没法识别

说明我对内部类,作用域没有什么认识。。

 

// 类的结构

inline bool compare(const Sale_item& lhs, const Sale_item& rhs)
{
return lhs.book <rhs.book;
}

typedef bool (*Comp)(const Sale_item&, const Sale_item&);

std::multiset <Sale_item, Comp > items(compare);

这段代码,我是写在cpp中的,但是同事L说这种写法很奇怪,应该作为类成员放在类中,不应该放在cpp中成为全局变量,

然后我就把上面的代码直接放在类里面,但是typedef bool (*Comp)(const Sale_item&, const Sale_item&);可以直接放在类中吗?

而且编译器报错,compare is not a type,莫名其妙,也不知道怎么改

 

//返回值是类类型

GpsLocation proceessLocation(){

  // TO-DO

  return GpsLocation();

}

写代码时,经常都是先写一个函数的壳,然后慢慢的填,但是一开始写了上面的函数,编译器报错,没有返回值

然后我写了return ; return NULL;return void;return void*(0);都不对,只能说自己没脑子,C++基础极差。。。

然后同事L,帮我写成了上面的样子,返回一个构造(对象),然后编译器编过了,但是不知道有没有其他更好的方法。

然后,我就想,如果没法返回有效的对象怎么办?,怎么报错?return -1?return NULL?很蠢的解决的方法。。。

同事L告诉我,用异常处理就行了,如果没有有效的对象就抛一个异常就行了,构造失败的时候也一样,抛一个异常就OK了

日了狗了,异常处理怎么写一点都不知道

 

// 空对象

Location location = process();

if(NULL != location){} 编译器报错了,说没有重载operater!=,这个该怎么办?要怎么判断一个类是不是空的?

然后我就想把location换成指针的?但是如果process返回的就是对象怎么办?,然后我把process返回值变成了对象的引用。

然后愚蠢的我用引用和NULL进行比较,判断引用是否为空,突然觉得不对,引用不可能是空的吧?真真对自己无语了。。。

 

// 异步处理

int add(){

  mid;

  deal(mid);

  reurn mid;

}

要求,调用deal的时候,return mid继续执行,不用等deal执行完后再执行return mid,先将mid返回给上层,deal执行完后,会调用一个回调,

将处理结果上抛给上层,我想半天就想出了个deal用线程处理,也就是多线程,但是也不知道行不行。

 

// 多线程

需要上次掉add后,启一个线程,进行update的循环,循环里一直对location进行更新,目前用的是java多线程的C++封装,

也不知道用纯C++的应该怎么去实现。

 

// 容器

之前用过multimap,重复key不同的value,但是现在不需要什么对应关系,只有重复的key,但是不需要value,不知道该用哪种容器,

multiset行不行??容器的基本操作也忘得差不多了。

 

// 代码结构

不知道该怎么组织代码,这些函数放在什么地方,是公的还是私的,是否需要声明为虚的?是否要const,是否要static,是使用引用还是指针?

返回值是引用还是指针,什么时候需要链式构造,需不需要友元,需不需前置声明,需不需要虚析构,等等等,太多不知道怎么办。。

 

// 智能指针

今天用GpsfenceState mState = new GpsfenceState(), 蒙的觉得不对,得内存管理啊,然后就想用智能指针,

然后半天没想起来智能指针该怎么用,sp<GpsfenceState> mState = new GpsfenceState(),用的是java的C++包装的智能指针

结果编译器报错,has no member named ‘decStrong‘,是StrongPoint.h中报的错,查了一下,是因为未继承class RefBase 类导致的问题,

也不知道为什么没有继承这个类会导致错误,然后就让GpsfenceState继承了这个类,就OK了。

 

上面的就是自己今天晚上遇到的问题,都是一些C++最基础的语法问题,结果搞到8点多还是没搞定,很沮丧的回家了。。。。

我太水了~

原文:http://www.cnblogs.com/Neo-Lc/p/4970136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!