C++的变量为啥定义是要赋值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++的变量为啥定义是要赋值?相关的知识,希望对你有一定的参考价值。

C语言中变量初始化,一般不用赋值,但C++为什么要这样?而且C++main函数中,return 0和return -1为什么都没有报错?

一般来说,变量要赋初始值,这是一个好习惯。c++因为有类的概念,初始化自然看的比较重要。
对于第二个问题,只要你返回类型正确,编译器是不会报错的。不过main函数的返回值是有它的特殊意义的,它的意义在于供其它程序查看你的退出码,以判断你是否成功执行。所以,不是你一个人在使用这个返回值,如果你随心所欲,结果肯定是被人家误会,吃亏的是你。
参考技术A 没人说c++定义变量的时候必须赋值,赋值只是为了代码的简洁
既然是 int main()那么返回一切int的值都是可以的,没人规定一定只能返回0追问

但是程序中返回-1,一般是代表错误,我不知道C++的main函数是怎么处理0和-1不同的区别的?

为啥 vue.js 的 data 中定义的变量不能赋值给对象?

【中文标题】为啥 vue.js 的 data 中定义的变量不能赋值给对象?【英文标题】:Why can't I assign an object to a defined variable in data in vue.js?为什么 vue.js 的 data 中定义的变量不能赋值给对象? 【发布时间】:2017-10-04 14:46:09 【问题描述】:

我用这种方式,但是不渲染

this.res = Object.assign(,
   this.res, 
     "employees": [
       "firstName": "John",
       "lastName": "Doe"
     , 
       "firstName": "Anna",
       "lastName": "Smith"
     , 
       "firstName": "Peter",
       "lastName": "Jones"
     ],
     'haha': 'baba',
     'papa': 
       'mimi': 'mimi'
     
   )

【问题讨论】:

【参考方案1】:

employees 未在渲染时(创建)定义。 你应该直接在data中写res对象。

【讨论】:

【参考方案2】:

不要在 get 方法中分配给对象,而是在 created 生命钩子中进行,因此 res 属性将在渲染页面之前填充数据

var vue = new Vue(
    el: "#app",
    data: function() 
        return  
            res: 
        
    ,
    created: function() 
        this.res = 
             "employees": [
               "firstName": "John",
               "lastName": "Doe"
             , 
               "firstName": "Anna",
               "lastName": "Smith"
             , 
               "firstName": "Peter",
               "lastName": "Jones"
             ],
             'haha': 'baba',
             'papa': 
               'mimi': 'mimi'
             
        
    
)
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="app" >
    <div>res.employees[0].firstName</div>
    <div> res.papa.mimi</div>
    <div> res.haha</div>
</div>

【讨论】:

以上是关于C++的变量为啥定义是要赋值?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 vue.js 的 data 中定义的变量不能赋值给对象?

C++变量(C++变量定义变量赋值命名规则)

C++变量(C++变量定义变量赋值命名规则)

c++中为啥赋值运算符重载返回类型是引用

Visual C++中二级指针的定义,初始化,赋值问题

为啥在verilog中要定义wire?