首页 > 编程语言 >对c++的一些思考

对c++的一些思考

时间:2022-10-01 22:55:10浏览次数:43  
标签:初始化 函数 c++ char 内存 思考 一些 变量

  1. 能用初始化列表就用

  2. 能写 explicit 就写

  3. 能用 c++11自带的跨平台函数、对象就用、但也要分情况,如果想完全知道自己在干什么就用系统API

  4. 能自己写的就不要让编译器生成!

  5. 能不用泛型就不用!否则应该小心出错的情况

  6. 能分文件写的就别合起来!

  7. 一直记得delete或者free

  8. 初始化列表的赋值顺序是在类里定义的顺序、跟初始化列表的书写顺序无关

  9. 执行代码的前置条件应该是全部设置好,各种对象都初始化好再进行、实在不行可以手动写个init函数,确保初始化

  10. 避免闭包等高级内容,别没事找事

  11. 父类的析构要写虚函数、父类的构造拷贝析构都不继承,private虽然不继承但占内存。

  12. 注意静态的成员变量在外面初始化、静态的函数用两个冒号调用、两个冒号是很重要的运算符!!!

  13. 项目驱动,理解为王、动手要多、多看多练

  14. 函数里不要乱new东西、容易忘记释放内存、更不能写个局部的东西然后返回这个变量的地址或引用给外面。能用智能指针就应该用

  15. 能用初始化列表就用,尤其是初始化一个结构体。

  16. 结构体的相互赋值是里面每个字段的赋值、类也可以是同理的、但也可以自定义方法

  17. 头文件写定义,cpp写实现,这样最稳

  18. 任何的函数应该只能修改:

    1 专门为了传出去所以传入的指针变量、引用变量

    2 某个全局量

    3 静态量

    4 成员变量

  1. 想用字符数组当字符串,需要注意:

    1. /0 的问题、/0直接影响各种相关函数的指向情况

    2. 处理时用strstr,strcpy,strlen等C函数!

    3. 转成 c++ string 再处理也行、注意c++的string头文件不带h

    4. 注意内存开多大合适

  2. 做任何事都要考虑内存、各种错误、异常情况的处理、程序是否会出现崩溃的可能、要多测试(尤其是网络程序)

  3. 要多写配套的脚本工具,工具类,配置文件!真正的主程序应该是在充分的依赖上建立起来的、要先思考这个项目的整体架构、运用什么界面库,服务器运行在哪,交互顺序怎么样,数据库和中间件用不用,用什么...等问题

  4. char* const p 表示这个p一旦指向了某处,就不能指向别处

    const char* p 表示 p 指向的东西不能通过 p 修改

  5.  一切的编程本质上是处理二进制数据,二进制数据被高级语言抽象成 int float char等内容,程序员又进一步组合这些东西成为结构,对象... 

标签:初始化,函数,c++,char,内存,思考,一些,变量
From: https://www.cnblogs.com/gs590/p/16747944.html

相关文章

  • dolphindb dba一些常用的维护sql
    Alwayskeepemptypartitionsatbothendsofthepartitionrange.Keepthepartitionsatbothendstoguaranteethatthepartitionsplitandthepartitionmerge......
  • C++ 彩票器
    #include<iostream>#include<ctime>#include<cstdlib>usingnamespacestd;intmain(intargc,char**argv){//1.获取一下你买的彩票号码intnumber=0;......
  • 贤鱼的刷题日常-【c++】P7909 [CSP-J 2021] 分糖果
    ✅创作者:贤鱼⏰预计时间:15分钟@​​TOC​​题目题目背景红太阳幼儿园的小朋友们开始分糖果啦!题目描述红太阳幼儿园有n个小朋友,你是其中之一。保证n≥2。有一天你在幼儿园......
  • 关于技术人员成长的一些建议
      任何一名技术大神都是从小菜鸟开始的,这应该无一例外。当然,有的人成长的快,有的人成长得慢,有的人坚持下来,有的人半途而废。如果我们在成长的过程中能掌握一些方法,也许能......
  • C++ 第46课八卦图读取
    #include<bits/stdc++.h>#include"minecraft.h"usingnamespacestd;TxMinecraftmc;stringmeiju(stringX,stringZ){ stringx,z; intid=251,data=15,cis......
  • C++_Windows Socket 学习记录_01
    主要实现服务器-服务器传输消息Server.cpp#include<stdio.h>#include<stdlib.h>#include<WinSock2.h>#include<iostream>#pragmacomment(lib,"ws2_32.lib")us......
  • VSCode + WSL + clangd +CMake + CMake Tools搭建C++开发环境
    前言开始安装前先了解以下概念:gcc,llvm,clang区别与联系:详解三大编译器:gcc、llvm和clangclangd是什么?Whatisclangd?与LLVM每日谈之二十五Clangd和LSP简而言之cl......
  • VSCode C++跳转和调试方法总结
    跳转GNUGlobal标签式跳转场景:用GNUGlobal,基于标签式的跳转。插件:"C/C++GNUGlobal"插件;本地机器上的GNUGlobal软件。优缺点:基于标签式跳转,相当于纯文本模式......
  • C++心得
    I/Ocout保留有效数字问题C++中cout默认保留六位有效数字,并且进行四舍五入修改保留数的方法cout.precision(2); //用这个来改变默认保留几位小数cout<<"保留两位有效:......
  • 运维思考:聊聊高可用的“异地多活”架构设计
    前言后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过F5或者任何代理的方式就可以很好的解决。后文描述的主要是针......