精华内容
下载资源
问答
  • C++种情况只能用初始化列表,而不能用赋值? (1)对于const和reference类型成员变量,它们只能够被初始化而不能做赋值操作,因此只能用初始化列表; 初始化与赋值是不同的: 赋值是删除原值,赋予新值...
    C++有哪几种情况只能用初始化列表,而不能用赋值?

    (1)对于const和reference类型成员变量,它们只能够被初始化而不能做赋值操作,因此只能用初始化列表;

    初始化与赋值是不同的:
    赋值是删除原值,赋予新值,构造函数的意思是先开辟空间然后为其赋值,只能算是赋值不算初始化;

    初始化列表就不一样了,开辟空间和初始化是同时完成的,直接给予一个值;

    常量不能被赋值,只能被初始化,所以必须在初始化列表中完成;

    C++的引用也一定要初始化,所以必须在初始化列表中完成。

        1) 引用必须被初始化,指针不必;

        2) 引用初始化以后不能被改变,指针可以改变所指的对象;

        3) 不存在指向空值的引用,但是存在指向空值的指针。

    很好

    展开全文
  • 线程的状态以下种: NEW:新建、初始化 RUNNABLE:可运行状态 BLOCKED:阻塞中 WAITING:无限等待中 TIMED_WAITING:时间限制的等待中 TERMINATED:结束、死亡状态 第一种状态:NEW,我们可以...
      线程的状态有以下几种:
    

    NEW:新建、初始化
    RUNNABLE:可运行状态
    BLOCKED:阻塞中
    WAITING:无限等待中
    TIMED_WAITING:有时间限制的等待中
    TERMINATED:结束、死亡状态
    第一种状态:NEW,我们可以理解为线程处于新建、等待启动的状态,这种状态下,线程就仅仅是一个对象
    第二种状态:RUNNABLE,中文意思是可运行的,意思就是说我们这个线程可以被CPU执行了,但CPU未必就正在执行。当线程调用start方法,就意味着线程进入了RUNNABLE状态(但不仅限于调用start方法,线程在BLOCKED、WAIT,TIMED_WAITING状态下都可以变为RUNNABLE状态)
    第三种状态:BLOCKED,中文翻译过来为阻塞的意思,只要线程去获取别的线程正在使用的资源,就会进入BLOCKED状态
    第四种状态:WAITING,线程处于无限等待中,等待什么?等待共享的资源允许被使用或等待其它线程执行完毕。当我们调用wait方法notify方法可以进入运行状态,线程则进入了WAITING状态,请注意,wait和notify都是Object下的方法
    第五种状态:TIMED_WAITING,非无限等待,而是有确切的等待时间,当线程等待了指定的时间,会回归到RUNNABLE或BLOCKED状态。当我们调用sleep(long millis)或者wait(long timeout)后进入TIMED_WAITING
    第六种状态:TERMINATED,终止、结束,你还可以生动的理解为“死亡”,当线程执行完毕,则会进入该状态

    展开全文
  • 初始化列表

    2018-03-26 19:34:39
    初始化列表一般用于构造函数赋值的操作中,它的常用赋值对象:1、常量(常数据成员只能用初始化列表来...下面以几个例子来说明一下;一、求圆面积:#include<bits/stdc++.h>//数据成员为常量,引用...

     初始化列表一般用于构造函数赋值的操作中,它的常用赋值对象有:

    1、常量(常数据成员只能用初始化列表来初始化);

    2、引用类型;

    3、无参构造函数的类的对象。

    具体格式为 类名(形参表:如int x,int y): 成员数据(x),成员数据(y){ }    意思是成员数据绑定x,y。

    下面以几个例子来说明一下;

    一、求圆面积:

    #include<bits/stdc++.h>//数据成员为常量,引用类型;
    using namespace std;
    class tclass
    {
        public :
            tclass(int a):x(a),r(x),pi(3.1415926){}//构造函数;
            //在定义对象时,同时也定义了引用变量及常量,而且对于常量与引用均要在定义时就初始化,之后不能再更改;
            void outsize()
            {
                cout<<(r*r*pi)<<endl;
            }
        private:
            int x,&r;        //成员数据的形成与构造函数是同时发生的,即int x=a;int &r=x;
            const double pi; //即const double pi=3.1415926;
    
    };//分号千万别忘了;
    int main()
    {
        tclass roundsize(2);//圆点型访问;
        roundsize.outsize();
        return 0;
    
    }
    
    
    

    二、无参构造函数的类的对象。

    #include<bits/stdc++.h>
    using namespace std;
    class A
    {
        public :
            A(int x):a(x){}
            int a;
    };
    class B
    {
        public :
            B(int x,int y):b(x),aa(y){}//y的值给aa,因为aa为对象,所以相当于A aa(y);
            void out()
            {
                cout<<"b="<<b<<","<<"aa="<<aa.a<<endl;
            }
        private :
            int b;
            A aa;//无参构造函数的类的对象,在这里可以理解为 A aa(y);
    
    };
    int main()
    {
        B test(1,2);//定义B类型的对象,并通过构造函数将test的成员变量初始化;
        test.out();
        return 0;
    }
    

            所以,最后对于初始化列表,其实就是通过构造函数对成员数据赋值的过程。同时,我们是不是也可以理解为在定义对象时,对象成员数据的形成与构造函数对数据的初始化操作是同时进行的,即定义的同时给其赋值。

    The end;


    展开全文
  • 针对这个以下几个误区: 误区一 对于 * 这个符号的理解的不足 例子一 int a; int *b = &a; 例子二: *b = 10 (这个假设b指针变量已经初始化了,否则这样单独赋值是不对的) 对于例子一 int *b = &a; 中...

    一、指针的定义
    第一种 显性定义
    int *a;
    注意: 这里的 * 只是作为一个指针类型的标识符
    该声明的意思: a是一个指向整数类型的指针变量
    针对这个有以下几个误区:
    误区一 对于 * 这个符号的理解的不足
    例子一 int a;
    int *b = &a;
    例子二: *b = 10 (这个假设b指针变量已经初始化了,否则这样单独赋值是不对的)
    对于例子一 int *b = &a; 中可以理解为 * 是一个指针标志符
    对于例子二 *b 只是一个间接访问符
    误区二
    int *b = 10;
    或者
    int *b;
    *b = 10;
    如果这样初始化会发生什么?
    第一 警告: 把整数赋给指针变量
    第二 运行的错误

    book@www.100ask.org:~/ablerry$ ./c_struct
    Segmentation fault (core dumped)
    
    	为什么指针使用者会发生这样的一种情况?
    	上面的 b 就相当于一个野指针,因为我们不知道 b 究竟指向何处 ,这对于计算机是非常危险的,一旦指向系统不可更改的部分,就会起系统的毁灭,因此出现上面的报警。
    			   上面的可以改为
    			   				*b   = *(int  *)10;
    			   		这里10作为的是 地址  而不是我们理解的 10   *(int  *)10 就相当于把地址号为10的这个地方初始化一个整型变量的空间
    			**第二种  隐性定义**
    			 int   a[10];     struct adat1{ char name; int score };
    

    二、指针的初始化问题

    	1.字符串的指针初始化
    			char  *s =“buyer”;       //  s 保存的是 b 的地址
    			char  str[]  = "buyer";    //隐性指针str  执行了  b
    			前者只是把字符串的首地址给s,没有分配足够的内存地址来保存整个字符串 , 后者初始化的同时,把他们保存在数组中,也就是分配好了所有字符需要的内存。
    			此时,如果要复制另一个字符串str1 到p或str:
    			strcpy(p, s);    //错误!   需改为  p=(char*)malloc( strlen(str1)+1 );  才正确
    			strcpy(str, str1);    //没错误,已有足够内存,但不能总是保证。
    			strncpy(str, str1, strlen(str) );    //正确!不作讨论
    	2.    整形指针的初始化
    			试看下面语句哪一行 能够 打印输出?
    			int a = 10;
    			int * p1 = 0;     
    			int * p2 = &a;  //常见,初始化为某变量的地址
    			int * p3 = 20;    
    			printf("p1=%p, *p1=%d\n", p1, *p1);
    			printf("p2=%p, *p2=%d\n", p2, *p2);
    			printf("p3=%p, *p3=%d\n", p3, *p3);
    			这几行语句编译时会有警告:p3那一行将整数赋值给指针,没做类型转换。
    			运行时会导致崩溃。
    			为什么呢?
    			仔细看一下,int * p1 = 0;     //真的初始化了吗?
    			                     int * p3 = 20;    // *p3 初始化成20了吗?
    			***其实int *p1 = 0 相当于 int *p1 = NULL,不能读取空指针 p1 以及 *p1 的值!***
    			而 int *p3 = 20 相当于 int *p3;   p3 = (int *)0x00000014; 不能读取*p3的值。
    3.    指针数组的初始化
    				问题一:
    				const char *p[] ={"aaa", "bbb"};        // 这样在定义p的时候完成了初始化,那么
    				int *p1[] ={1,2};       //Wrong! 为什么不可以? 如何在定义p1的时候进行初始化?
    				int *p2[] = {NULL, NULL};        //OK. 这样又可以了?
    				问题二:
    				我想定义一个指针数组(虽然很少人用这个东西),那么,对这个指针的初始化怎么做?
    				int * pstr[5];
    				 const char *p[] = {"aaa", "bbb"};  指向字符的指针数组,数组中的元素是字符串,指针数组保存的是字符串首地址,没有问题。
    				对于int *p1[] ={1, 2}而言,存在二义性,它既可以表示int p1[2][0],即p1[0][0]=1,p1[1][0]=2
    				也可表示为int p1[n][2],即:p1[0][0]=1,p1[0][1]=2; 
    				我们可以这样:
    				    int *p[3];
    				    for(i=0; i<3; ++i)
    				    {
    				        p[i] = (int *)malloc( sizeof(int));
    				    }
    				    /* Do something with p[i] */
    				    for(i=0; i<3; ++i)
    				    {
    				        free(p[i]); 
    				    }
    				不然怎么样呢? 这样比较好:
    				int arr[3][2] = { {1, 2},  {3, 4},  {5, 6} };
    				int *pa[3];
    				for(int i=0;  i < 3; ++i) {
    				    pa[i] = arr[i];
    				}
    				而 int *p[3] = { {1, 2},  {3, 4},  {5, 6} };  是不行的!Warning一堆。
    				4.    struct 指针的初始化
    				struct_type *p;
    				p = (struct_type *)malloc( sizeof(struct_type) );
    

    这段引用于:
    https://blog.csdn.net/newyoung518/article/details/12504399

    展开全文
  • ViewPager设置初始加载页面

    千次阅读 2018-10-25 14:23:21
    使用ViewPager的时候默认情况下都是加载第一...第二方法中多了一布尔类型的参数 smoothScroll,它的意思就是切换的时候是否有滚动的效果,当页面少的时候,其实直接设置 item 就可以了,但是当有几十页的时候...
  • 类是在看PF的ActionExtClear的初始化函数的时候,发现forcedMove(强制移动)和threholdRest(休息的阈值)的初始化的时候,突然发现没看懂是啥意思,他传进去一name和一defaultalue什么用? 原来在...
  • opnet几个基本问题

    千次阅读 2012-09-11 14:32:46
    1 关于自中断op_...因为网络里会节点同时进行初始化,op_intrpt_schedule_self (op_sim_time (), 0)这句的意思就是,执行完自己前面的初始化后返回仿真核心,让仿真核心转到别的节点执行之前同样的初始化。
  • public int firstDay() // 用来计算并判断该年第一天是星期 { long n = year * 365; for (int i = 1; i ; i++){ if (isLeapYear(i)){ n++; } } return (int)n%7; } public void printWeek...
  • 谈谈几个编程习惯

    2009-05-15 13:26:00
    一个人的成功有时往往体现在细节上,而习惯往往是这些细节的具体表现形式,这里我也想总结几个不太好的编程习惯。 第一:下面的一段程序大概的意思就是,页面上一个属性HighPrice,它最终会通过ViewState保存在...
  • 每种类型的变量都各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。它是直接操作内存空间,mem即“内存”(memory)的意思。该函数的原型为: ...
  • 在继续往脑子里塞新知识前,必要总结一下现有知识都能干哪些事。把基础巩固好再向下一目标进发。 本节和接下来节会以实例的方式来综合运用前面所学的知识,以此达到灵活运用的目的。(也可以理解为实验课的...
  • tcp连接的几个状态

    2012-08-10 07:07:30
    大家对netstat -a命令很熟悉,但是,你没有注意到STATE一栏呢,基本上显示着established,time_wait,close_wait等,这些到底是什么意思呢,在这篇文章,我将会详细的阐述。 大家很明白TCP初始化连接三次握手吧:发...
  • 本人新手,接触到哈希查找,有几个问题看不懂,希望大家指点迷津,多谢。 #include"stdio.h" #include"malloc.h" //定义查找的节点元素 typedef struct { int num; char name[20]; }ElemType; //定义...
  • 起因:早上偶然看见一篇文章说是ef core(2.x)使用种子数据,主表子表迁移时候,正常情况下说是无法迁移成功... 如下图,几个实体应该不用说明什么意思,很显而易见,最下面的 UserRolePermission是role和permissi...
  • 在刚开始创建android项目的时候,有几个选项是必须让你写的,这些选项是什么意思呢,有什么作用呢? 下面来分析和解释下: 1.Application Name:你程序的名称,他会在你发布到android手机上时显示在程序下面的名称...
  • c++ premier中多次出现上面的代码,让人看了似曾相识,但是觉得什么都不是,因为这里包含了好几个知识点,让我来慢慢解答。 1.独立于对象存在的类成员 首先来看这句: std::vector<T>::size_type 要想...
  • 先介绍一下django的目录与文件结构,有几个文件需要重点掌握的:settings.py #用来配置django项目的基本信息的,包括连接的数据库的数据库实例名,端口,用户名密码等。urls.py #用来记录路由数据的,这个不是网络...
  • 题意:题意是有L个单位长的画板,T种颜色,O个操作。...这题区间更新很简单但是查询会发现挺麻烦的,主要是不知道怎么判断一个区间到底有几个不同的数。 由于这道题的T比较小才30,1<<30不超过int型于是可以...
  • 它假设,所有的用户端都是在同一根总线上随机进行传输,这样如果用户在传输还没结束的时候就新的用户用总线进行传送就会产生一冲突,导致传输的包发生了部分冲突。而我们要计算包传输的成功率就相当于求解...
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    然后又使用一些内存分配技巧使namestr数组用起来好像元素,namelen记录了元素数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明...
  • 如同上一篇解释...根据zeckendorf定理,这里如果j>>(意思为远大于,至少大两)k -> j>k+2,那么任何一正整数都唯一表示,不过在程序里面没有用到这。 注意fibonacci作为基这没有重复项,基初始几
  • 解这道题多种思路,我具体用的是一个自下而上的由最小子问题解决的方法。...解题思路大致的意思是:dp[i][j]表示[i,j]间最少需添加几个字符才能合理,初始dp[i][i]=1,dp[i][j>i]=max,dp[i][jvalue[i][j]记录中间
  • 期望的意思是说你现在处在一状态,还需要步到达最终状态,这是一期望值, 假如我现在已经在目标状态,那么期望是0,即解决了初始化的问题,否则并不知道起点的期望值。 附上道入门题: hdu 4405 ...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    书中列出了C用户经常问的400多经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495C语言问题》结构...
  • 然后又使用一些内存分配技巧使namestr数组用起来好像元素,namelen记录了元素数。它是怎样工作的?这样是合法的和可移植的吗? 23  2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 273
精华内容 109
关键字:

初始有几个意思