c++-什么时候知道表达式的类型是做不到的?

问题描述

什么时候知道表达式的类型是做不到的?

《C++ Primer》第五版,中文版。p61。
编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而要做到这一点并非那么容易,有时甚至根本做不到。

解决方案

比如说表达式调用了基类的成员函数,这个函数可能被派生类覆盖,返回类型不知道。

解决方案二:

你可以用 auto 关键字,例如 auto p= 表达式;

解决方案三:

哥们你怎么短时间内发了这么多问题出来呀?看得出你是在学习《C++ Primer》这本书,建议你还是多想一想再来提问,这样更有助于你深刻理解问题。

时间: 2024-11-02 01:14:26

c++-什么时候知道表达式的类型是做不到的?的相关文章

LINQ to Entities 不支持 LINQ 表达式节点类型“ArrayIndex”

我就不屁话,能一张图就解决的就不说话了   2015-03-28 14:53:24,440 [10] ERROR log - System.NotSupportedException: LINQ to Entities 不支持 LINQ 表达式节点类型"ArrayIndex". 在 System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.NotSupportedTranslator.Translate(ExpressionCo

【C++0x】表达式之类型(decltype)

  C++0x引入了新的关键字decltype,它是一个操作符,用来取得表达式的类型,主要在泛型编程中使用.这里,简单介绍一下语法规则. 语法形式:decltype (expression)其中,这里的括号必不可少(这点不同于sizeof操作符).decltype(e)可看到是一个类型别名,并且不会对表达式e进行计算(即只有编译时行为而无运行时行为).另外,不允许把decltype作用于一个类型,因为没有任何理由要这样做. 确定decltype(e)类型的规则如下:Rule-1. 如果e是一个标

java-求大神 指点 boolean类型能做运算么

问题描述 求大神 指点 boolean类型能做运算么 public class Test01 { public static void main(String[] args) { // double y=2.5; // y=y+3; boolean true ; System.out.println(true+1); } } 这个有语法错误么 解决方案 没定义变量吧 应该是不对的 解决方案二: 不行有语法错误的 boolean true ;这样应该是 boolean str=true ;true

结构体类型指针做函数参数(C++)

因为用到了这块,所以转了一篇文章. 原文地址http://blog.sina.com.cn/s/blog_5f777ddd0100chbl.html 设有学生情况登记表如图所示,用选择排序法对该表按从小到大进行排序. 学生情况登记表 学号num 姓名name[8] 性别sex 年龄age 成绩score 101 zhang m 19 95.6 102 zhao m 20 89.0 103 wang f 18 96.5 104 shan m 20 94.0 105 chen f 20 76.5 1

C#教程第二课:表达式,类型和变量

变量|教程 本节课将介绍C# 语言的表达式,类型和变量.本节课要达到如下几个目的:1.了解什么是"变量" 2.学习C#的简单类型 3.对C#表达式有个初步的了解 4.了解什么是String类型 5.学习如何使用数组 "变量"仅仅是数据的存储位置.你可以把数据存放到其中,或者从中取出来作为C#表达式的一部分.变量中所存放的数据的含义是通过类型来控制的. C#是个强类型(???)的语言.这样,一切对变量的操作都是针对该变量的类型而进行的.为了保证变量中所存放数据的合法性

Java表达式类型自动提升

[一道经典的Java面试题] short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 答案是:前者错,后者对.相信不管是否经历过java面试过,大家一定对这道题很熟悉.因为这道题确实太经典了,以至于成为了基本每个老师都会拿出来,当作课堂例题来讲.要说清这道题,首先看看java表达式类型转换规则. [java表达式类型转换] java是一门强类型语言,不仅每个变量具有指定的数据类型,它的表达式也有指定的数据类型.因此在不同类型之间进行

Go语言基础知识总结(语法、变量、数值类型、表达式、控制结构等)_Golang

一.语法结构 golang源码采用UTF-8编码.空格包括:空白,tab,换行,回车. - 标识符由字母和数字组成(外加'_'),字母和数字都是Unicode编码. - 注释: 复制代码 代码如下: /* This is a comment; no nesting */ // So is this. 二.字面值(literals)类似C语言中的字面值,但数值不需要符号以及大小标志: 复制代码 代码如下: 23 0x0FF 1.234e7类似C中的字符串,但字符串是Unicode/UTF-8编码的

值类型与引用类型(中)

本文将介绍以下内容: 类型的基本概念  值类型深入 引用类型深入 值类型与引用类型的比较及应用    1. 引言 上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的发布,受到大家的不少关注,我们从内存的角度了解了值类型和引用类型的所以然,留下的任务当然是如何应用类型的不同特点在系统设计.性能优化等方面发挥其作用.因此,本回是对上回有力的补充,同时应朋友的希望,我们尽力从内存调试的角度来着眼一些设计的分析,这样就有助于对这一主题进行透彻和全面的理解,当然这也是下一回的重点. 从内存角

C#教程:匿名类型和隐式类型变量的区别

隐式类型变量 (Implicitly typed local variables) 象下面的代码书写就是隐式类型变量 var i = 5; var str = "Csharp" var numbers = new int[]{1,2,3}; var orders = new System.Collections.Hashtable(); var orders1 = new Dictionary(); var i = xxx ; 的作用就是用 xxx 的类型声明为i的类型.并给i 赋值.