当前位置: 首页 > news >正文

企业建网站费用百度大数据查询

企业建网站费用,百度大数据查询,长沙公司网站建设,网站开发会计科目准则 1.少使用define define所定义的常量会在预处理的时候被替代,出错编译器不容易找到错误。而且还没有作用范围限制,推荐使用constdefine宏定义的函数,容易出错,而且参数需要加上小括号,推荐使用inline有的类中例如…

准则

1.少使用define

  • define所定义的常量会在预处理的时候被替代,出错编译器不容易找到错误。而且还没有作用范围限制,推荐使用const
  • define宏定义的函数,容易出错,而且参数需要加上小括号,推荐使用inline
  • 有的类中例如数组初始化需要添加元素个数,如果define定义的常量没有作用范围限制,推荐使用enums

2.确定对象使用前先初始化

  • 为内置型对象进行手动初始化
  • 构造函数最好使用成员初始化列,如果在构造函数中进行赋值的话相当于先初始化默认值,然后有赋给值,导致浪费时间。
  • 为了免除跨编译单元之初始化次序,将非本地静态变量替换成本地静态变量。因为静态变量在程序编译时就赋值存在,不会导致引用时未构造。

3.为多态基类声明析构函数

  • 带多态性质的基类应该声明一个virtual的析构函数。如果class带有任何virtual函数,它就应该拥有一个virtual析构函数
  • Classs的设计目的如果不是作为base classes使用,或不是为了具备多态性,就不该声明virtual析构函数,因为设置virtual会使派生类带上virtual 函数表,导致浪费空间。
class A{virtual ~A(){}
}
class B:pulic A{}
A *b=new (B);
//当未定义virtual 基类析构函数时,会调用A的析构函数,可能导致未释放B新增内成员的的空间
delete b;

4.不要让异常逃离析构函数

class DBconn{
public:
void close(){
db.close();
closed=true;
}
~DBconn(){
if(!closed)
try{
db.close()
}catch(...){
std:abort();//结束程序,不要让异常传出去,造成不确定后果
}
}
}
private:
DBConnection db;
bool closed;
};
//在对元素析构时,当两个及以上元素出现异常时,程序就会停止或者造成不明确的行为,造成内存呢泄露
processWidget(std:trl::shared_ptrM<Widget> pr(new Widget),priority())

对于c++执行这句话,以什么样的次序进行执行弹性很大,与java与c#不同1。如果以 new widget,priority(),shared_ptrM(),顺序则可能出现内存泄露的风险。当priority出错()时,将无法将new出来的内存进行删除,因此最好以单独语句执行。

std:trl::shared_ptrM<Widget> pr(new Widget);
processWidget(std:trl::shared_ptrM<Widget> pr,priority())

8.以引用传递代替值传递

  • 按值传递可能会使特化的信息别切割
class window{
public:virtual :display();
}class myWindow:public window{private:int size;public:virtual:display();
}
void useDisPlay1(window w){w.display();
}
void useDisplay2(window& w){w.display();
}
mywidow w;
useDisPlay1(w);//按值传递会使 mywindow所得有特化的信息被切割
userIdsPlay2(w);//按引用传递则不会使切割
  • 按值传递会让编译器去构造副本,对于一般自定义的类来说浪费时间和空间
  • 按值传递适合内置类型,STL迭代器和函数对象。因为传递引用的实质使传递指针。

9.inline的使用

  • 将大多数inline限制在小型、被频繁调用的函数身上,这可使以后的调试过程和二进制升级更容易,也可使潜在的代码膨胀问题最小化,使程序提升速度最大化。
  • 不要只因为function template 出现在头文件就将他们设置为inline。

inline一定被放在头文件是因为编译器为了将函数调用代码替换为函数本体 要知道函数本体长什么样子

template 一定放在头文件里是 因为一旦被使用,编译器会将它具体化,得知道它长什么样子。

10.将文件间的编译依存关系降到最低

  • 如果使用object reference 或者obejct point 可以实现就不要用 object了。
  • 如果能够,尽量以class声明替代函数。
  • 为声明式和定义式提供不同的头文件
  • 或者将声明类定义为abstrate 类,实现类继承进行继承。

就是将类的实现和申明写成两个类,然后在声明类中引用实现类的指针。这样当实现类中的成员进行变化时,声明类不用重新编译。而且声明类中也无法看出方法的具体实现。

11.避免遮蔽继承而来的名称

class base{
private: 
int x;
public :
void fun()
}class drived :public base{public:using base:fun()void fun();
}
//子类fun()会遮蔽父类fun(),想用父类fun就要用 using base:fun()

derived的作用域

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICDjcePv-1692172341730)(C:\Users\18440\AppData\Roaming\Typora\typora-user-images\image-20220830185337010.png)]

drived classes内的名称会遮蔽base class内的名称,为了让遮蔽的名称重用,用using 或者转交函数

12.private继承

  • private继承意味is-implemented-in-terms of(根据某物实现)。它通常比复合成员的级别低。当derived class 需要访问protected base class的成员,或需要重新定义继承而来的virtual函数时,这么设计是合理的。
  • 和复合不同,private继承可以造成empty base 最优化。这对致力于”对象尺寸最小化“的程序开发者而言,可能很重要。

13.多重继承

  • 多重继承比单一继承复杂。它可能导致新的歧义性,以及对virtual继承的需要。

  • virtual继承会导致速度大小,初始化等等成本。如果virtual base classes 不带任何数据,将是最具有实用价值的情况。

  • 多重继承的确有正当途径,当其中一个情节涉及”public继承某个Interface class“ 和private 继承某个协助实现的class的两相组合。例如public 继承的接口在private 继承的类中有方法去实现。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NEncUj9i-1692172341731)(C:\Users\18440\AppData\Roaming\Typora\typora-user-images\image-20220830215346169.png)]

14.将与参数无关的代码抽离template

  • templates生成多个classes和多个函数,所以任何template代码都不该与某个造成膨胀的template参数产生依赖关系。

  • 因非类型模板参数而造成的代码膨胀,往往可以消除,做法是以函数参数或者class成员替换template函数。类如去定义类中一些参数,这样的参数可以写在类中。

  • 因类型参数造成的代码膨胀,往往可以降低。做法是让带有完全相同的二进制表述的具体表述共享实现代码。类如int与long可能公用一个模板。

http://www.wooajung.com/news/23410.html

相关文章:

  • 浩森宇特北京做网站哪里可以学网络运营和推广
  • vs开发网站开发教程产品推广思路
  • 安丘网站建设aqfeifan谷歌浏览器官网手机版
  • 惠阳网站制作公司自己在家怎么做电商
  • 做网站菠菜什么意思百度新闻官网首页
  • idc网站模版百度在线客服
  • 长沙微信网站制作百度投诉中心人工电话号码
  • 怎么用织梦系统建一个网站武汉网络营销推广
  • 英文搜索网站深圳网络推广代运营
  • 有网站模板如何预览云和数据培训机构怎么样
  • 相亲网站建设方案南京企业网站排名优化
  • 自己做的网站怎么添加采集模块如何创建网址
  • 网站仿做爱站网长尾关键词挖掘
  • 辽宁建设厅新网站2022世界足球排行榜
  • 什么app做网站直销的八大课程
  • 建设项目环保竣工验收备案网站企业关键词优化价格
  • 一个真正的网站需要怎么做sem推广
  • wordpress谷歌地图深圳seo优化推广
  • 可以做网站引导页的页面武汉百度快照优化排名
  • 算命先生的网站怎么做seo网站关键词排名优化公司
  • 企业网站的类型有哪些网络优化培训骗局
  • 个人备案网站百度收录学网络营销
  • 北京朝阳区居家办公优化大师电脑版官网
  • 网站单页支付宝支付怎么做的关于华大18年专注seo服务网站制作应用开发
  • 网站建设绵阳谷歌在线浏览入口
  • 信誉好的东莞网站设计百度客服电话
  • 医院网站怎么做运营关键词推广效果
  • 微网站什么意思推广运营公司哪家好
  • 宠物网站建设电脑上突然出现windows优化大师
  • 做网站开发一般用什么语言优化网站哪个好