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

阀门专业网站建设网站模板 代码免费

阀门专业网站建设,网站模板 代码免费,文艺风格wordpress主题,任何小说都能搜到的软件在C中,声明(declaration)是告诉编译器标识符的类型和名称的过程。根据声明的方式,可以分为显示声明(explicit declaration)和隐式声明(implicit declaration)。下面分别解释这两种声…

在C++中,声明(declaration)是告诉编译器标识符的类型和名称的过程。根据声明的方式,可以分为显示声明(explicit declaration)和隐式声明(implicit declaration)。下面分别解释这两种声明方式及其使用场景。

显示声明

在类声明中只给出成员函数的原型,而将成员函数的定义放在类的外部。

class Score{
public:inline void setScore(int m, int f);inline void showScore();
private:int mid_exam;int fin_exam;
};inline void Score::setScore(int m, int f) 
{mid_exam = m;fin_exam = f;
}inline void Score::showScore()
{cout << "期中成绩: " << mid_exam << endl;cout << "期末成绩:" << fin_exam << endl;
}

显示声明是指程序员明确地写出变量、函数或其他实体的类型和名称。这是最常见的声明形式,也是推荐的做法。通过显示声明,代码更加清晰易懂,同时避免了许多潜在的错误。

变量的显示声明

int a; // 声明一个整型变量a
double b; // 声明一个双精度浮点数变量b

函数的显示声明

// 函数原型声明
void printHello();// 函数定义
void printHello() {std::cout << "Hello, World!" << std::endl;
}

类成员的显示声明

class MyClass {
public:int myVariable;  // 成员变量的显示声明void myFunction(); // 成员函数的显示声明
};

 

隐式声明

将成员函数直接定义在类的内部

class Score{
public:void setScore(int m, int f){mid_exam = m;fin_exam = f;}void showScore(){cout << "期中成绩: " << mid_exam << endl;cout << "期末成绩:" << fin_exam << endl;}
private:int mid_exam;int fin_exam;
};

隐式声明通常指的是当编译器遇到未声明的标识符时,会尝试根据上下文来推断该标识符的类型。在C++中,这种情况主要发生在以下几种情形:

函数调用前没有声明

如果在函数调用之前没有提供函数原型或定义,那么C++允许进行隐式函数声明。这种情况下,默认假定函数返回int类型。

foo(42); // 如果foo在此处之前没有被声明或定义,这将是一个隐式的int类型的函数声明

但是,从C++17开始,这个行为已经被视为弃用,并且在未来的标准中可能会被移除。因此,总是建议在调用函数之前先声明或定义它。

类模板实例化

当使用类模板时,如果没有显式指定模板参数,编译器可能尝试通过传递给构造函数或方法的实际参数来推导出模板参数。

std::vector v; // 如果v之后立即被初始化为某种特定类型,如v.push_back(0),则这里v会被推导为std::vector<int>

自动类型推导

现代C++引入了auto关键字,允许编译器根据初始化表达式自动推导变量的类型。

auto i = 42; // i 的类型将被推导为 int

总的来说,虽然C++提供了某些形式的隐式声明机制,但为了提高代码的可读性和维护性,以及减少潜在的错误,最佳实践通常是优先使用显示声明。特别是在团队开发或者大型项目中,良好的声明习惯对于保持代码质量至关重要。

显示声明和隐式声明区别

显示声明 (Explicit Declaration)

  1. 明确性:程序员必须清晰地指定标识符的类型、名称以及其他相关信息。
  2. 位置:通常出现在使用之前,确保编译器已经知道该标识符的信息。
  3. 可读性和维护性:代码更易于理解,因为所有必要的信息都直接可见。
  4. 错误预防:有助于减少由于类型不匹配或未定义行为导致的错误。
  5. 例子
    • 变量: int x;
    • 函数: void myFunction(int arg);

隐式声明 (Implicit Declaration)

  1. 自动推断:编译器基于上下文尝试自动推断标识符的类型和其他属性。
  2. 位置:可能出现在使用之后,或者通过其他机制(如模板实例化)间接完成。
  3. 潜在的不确定性:可能导致代码难以阅读,特别是当多个地方依赖于隐式规则时。
  4. 风险:增加了出现意外行为的风险,尤其是当编译器对某些特性进行默认假设时。

总结

  • 显示声明是推荐的做法,因为它提供了更高的透明度和控制力,使得代码更加健壮和易于维护。
  • 隐式声明则更多地依赖于编译器的能力来推断类型,这虽然可以简化某些情况下的编码,但同时也可能引入一些不确定性和潜在的错误。

 

 


文章转载自:

http://Z2qZ8uCB.Ljdjn.cn
http://nPTnixqt.Ljdjn.cn
http://QNBAjWoE.Ljdjn.cn
http://rMjZsvUm.Ljdjn.cn
http://9ZWtqc5Q.Ljdjn.cn
http://vukZSnpf.Ljdjn.cn
http://ZNjFRhWP.Ljdjn.cn
http://t6ILI8XW.Ljdjn.cn
http://GPTqiJnN.Ljdjn.cn
http://qu2il6Lb.Ljdjn.cn
http://g7W5RBfk.Ljdjn.cn
http://hkl3bMPJ.Ljdjn.cn
http://uKd0zY9o.Ljdjn.cn
http://oy1FdrgT.Ljdjn.cn
http://XeCp3qrJ.Ljdjn.cn
http://RYq9VczC.Ljdjn.cn
http://eISoW6j8.Ljdjn.cn
http://MMHwcxu4.Ljdjn.cn
http://djozQWSU.Ljdjn.cn
http://x8aUcqmr.Ljdjn.cn
http://GdCdrg3z.Ljdjn.cn
http://9r5jnRhx.Ljdjn.cn
http://TzhePglR.Ljdjn.cn
http://bmXN5zZy.Ljdjn.cn
http://XBaFkbGc.Ljdjn.cn
http://LKauhLCd.Ljdjn.cn
http://IdSqcpq9.Ljdjn.cn
http://Kbh4ksZL.Ljdjn.cn
http://ba4WjYmg.Ljdjn.cn
http://uf0iURdZ.Ljdjn.cn
http://www.dtcms.com/wzjs/679431.html

相关文章:

  • 网站建设哈尔滨app开发2西安网站制作开发公司哪家好
  • 做网站卖什么软件个人网站模板打包下载
  • 帮人做网站收多少钱seo推广代理
  • 移动端网站怎么做取消wordpress 注册邮箱
  • 网站开发维护岗位职责科技有限公司最低注册资金
  • 商城网站建设报网站开发技术文档格式
  • 禁忌网站淘宝官网首页登录入口电脑
  • 网站制作网址编程scratch
  • 怎么做网站教程 用的工具从零开始建网站
  • 官网和网站的区别wordpress收费查看
  • 做网站需要些什么公司官网怎样制作
  • 国外网站建设方案智慧团建网站密码
  • 房地产电商网站建设网站开发与管理期末考试
  • 电商网站开发过程是什么社交网站开发公司
  • 腾云建站官网晟阳建设官方网站
  • 0基础网站建设模板初学网站开发
  • 广州市建设工程项目代建局网站个人电脑建立网站会
  • 昆山做百度网站天猫淘宝优惠券网站怎么做
  • 国内可以使用的自己建站加拿大购物网站排名
  • 青岛网站建设推广服务建设银行网站怎么开通短信服务
  • 网站建设 html5营销型网站建设应该考虑哪些因素
  • 巴中微小网站建设案例网络seo公司
  • 广东建设协会网站网站制作一条龙
  • 网站后台发邮件微信转账做网站收款
  • 农业科技公司网站建设网站 成品下载
  • 东莞市建设安监监督网站首页wordpress 同步登录
  • 山东省南水北调建设管理局网站互联网技术培训
  • 几百元做网站视频网站不赚钱为什么还做
  • 高权重网站做员会来顶排名南京学习网站建设
  • 合肥网站营销网站排名查询系统