/=在c++c 中的 是什么意思意思

新人求助,op在c++里是什么意思??_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:254,833贴子:
新人求助,op在c++里是什么意思??收藏
c++一般需要4-8周,就可以掌握.4个月=两年的工作经验,月薪过万.c++的费用根据培训课时定,免费试听编程课程,名师授课,手把手传教.
要编程了,但不知道什么意思,有什么用
大神快来啊
面向对象???
大神呢??
对象编程objectObject oriented programming(oop吧 )面向编程对象编程其中一个
不过我感觉 应该第二个
那是变量名啊少年,就是相当于一个记录你的中间变量的容器而已。
操作,问你对这两数要实现什么样的操作吧
也许楼主说的 运算符重载?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或C/C++中static关键字不同的含义详解
static关键字是C,&C++中都存在的关键字,&它主要有三种使用方式,&其中前两种只指在C语言中使用,&第三种在C++中使用(C,C++中具体细微操作不尽相同,&本文以C++为准).&
(1)局部静态变量&
(2)外部静态变量/函数&
(3)静态数据成员/成员函数&
下面就这三种使用方式及注意事项分别说明&
一、局部静态变量&
在C/C++中,&局部变量按照存储形式可分为三种auto,&static,&register&
谭浩强,&第174-175页)&
与auto类型(普通)局部变量相比,&static局部变量有三点不同&
1.&存储空间分配不同&
auto类型分配在栈上,&属于动态存储类别,&占动态存储区空间,&函数调用结束后自动释放,&而static分配在静态存储区,&在程序整个运行期间都不释放.&两者之间的作用域相同,&但生存期不同.&
2.&static局部变量在所处模块在初次运行时进行初始化工作,&且只操作一次&
3.&对于局部静态变量,&如果不赋初值,&编译期会自动赋初值0或空字符,&而auto类型的初值是不确定的.&(对于C++中的class对象例外,&class的对象实例如果不初始化,&则会自动调用默认构造函数,&不管是否是static类型)&
特点:&static局部变量的”记忆性”与生存期的”全局性”&
所谓”记忆性”是指在两次函数调用时,&在第二次调用进入时,&能保持第一次调用退出时的值.&&
示例程序一&
#include&&&
using&namespace&&
void&staticLocalVar()&
&static&int&a&=&0;&//&运行期时初始化一次,&下次再调用时,&不进行初始化工作&
&cout & &"a=" & &
int&main()&
&staticLocalVar();&//&第一次调用,&输出a=0&
&staticLocalVar();&//&第二次调用,&记忆了第一次退出时的值,&输出a=1&
&return&0;&
&利用”记忆性”,&记录函数调用的次数(示例程序一)&
&&&利用生存期的”全局性”,&改善”return&a&pointer&/&reference&to&a&local&object”的问题.&Local&object的问题在于退出函数,&生存期即结束,.&利用static的作用,&延长变量的生存期.&
示例程序二:&
//&IP&address&to&string&format&
//&Used&in&Ethernet&Frame&and&IP&Header&analysis&
const&char&*&IpToStr(UINT32&IpAddr)&
&static&char&strBuff[16];&//&static局部变量,&用于返回地址有效&
&const&unsigned&char&*pChIP&=&(const&unsigned&char&*)&IpA&
&sprintf(strBuff,&"%u.%u.%u.%u",&&pChIP[0],&pChIP[1],&pChIP[2],&pChIP[3]);&
&return&strB&
注意事项:&
1.&“记忆性”,&程序运行很重要的一点就是可重复性,&而static变量的”记忆性”破坏了这种可重复性,&造成不同时刻至运行的结果可能不同.&
2.&“生存期”全局性和唯一性.&普通的local变量的存储空间分配在stack上,&因此每次调用函数时,&分配的空间都可能不一样,&而static具有全局唯一性的特点,&每次调用时,&都指向同一块内存,&这就造成一个很重要的问题&----&不可重入性!!!&
这样在多线程程序设计或递归程序设计中,&要特别注意这个问题.&
(不可重入性的例子可以参见
C++&(2nd)&(影印版)第103-105页)&
下面针对示例程序二,&分析在多线程情况下的不安全性.(为方便描述,&标上行号)&
①&const&char&*&IpToStr(UINT32&IpAddr)&
②&{&
③&&static&char&strBuff[16];&//&static局部变量,&用于返回地址有效&
④&&const&unsigned&char&*pChIP&=&(const&unsigned&char&*)&IpA&
⑤&&sprintf(strBuff,&"%u.%u.%u.%u",&&pChIP[0],&pChIP[1],&pChIP[2],&pChIP[3]);&
⑥&&return&strB&
⑦&}&
假设现在有两个线程A,B运行期间都需要调用IpToStr()函数,&将32位的IP地址转换成点分10进制的字符串形式.&现A先获得执行机会,&执行IpToStr(),&传入的参数是0x0B090A0A,&顺序执行完应该返回的指针存储区内容是:”10.10.9.11”,&现执行到⑥时,&失去执行权,&调度到B线程执行,&B线程传入的参数是0xA8A8A8C0,&执行至⑦,&静态存储区的内容是192.168.168.168.&当再调度到A执行时,&从⑥继续执行,&由于strBuff的全局唯一性,&内容已经被B线程冲掉,&此时返回的将是192.168.168.168字符串,&不再是10.10.9.11字符串.&
二、外部静态变量/函数&
在C中static有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。,&但为了限制全局变量/函数的作用域,&函数或变量前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。注意此时,&对于外部(全局)变量,&不论是否有static限制,&它的存储区域都是在静态存储区,&生存期都是全局的.&此时的static只是起作用域限制作用,&限定作用域在本模块(文件)内部.&
使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。&
示例程序三:&
//file1.cpp&
static&int&varA;&
int&varB;&
extern&void&funA()&
static&void&funB()&
//file2.cpp&
extern&int&varB;&//&使用file1.cpp中定义的全局变量&
extern&int&varA;&//&错误!&varA是static类型,&无法在其他文件中使用&
extern&vod&funA();&//&使用file1.cpp中定义的函数&
extern&void&funB();&//&错误!&无法使用file1.cpp文件中static函数&
三、静态数据成员/成员函数(C++特有)&
C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数.&这是与普通成员函数的最大区别,&也是其应用所在,&比如在对某一个类的对象进行计数时,&计数生成多少个类的实例,&就可以用到静态数据成员.&在这里面,&static既不是限定作用域的,&也不是扩展生存期的作用,&而是指示变量/函数在此类中的唯一性.&这也是”属于一个类而不是属于此类的任何特定对象的变量和函数”的含义.&因为它是对整个类来说是唯一的,&因此不可能属于某一个实例对象的.&(针对静态数据成员而言,&成员函数不管是否是static,&在内存中只有一个副本,&普通成员函数调用时,&需要传入this指针,&static成员函数调用时,&没有this指针.&)&
请看示例程序四(
c++&(2nd)&(影印版)第59页)&
class&EnemyTarget&{&
&&EnemyTarget()&{&++numT&}&
&&EnemyTarget(const&EnemyTarget&)&{&++numT&}&
&&~EnemyTarget()&{&--numT&}&
&&static&size_t&numberOfTargets()&{&return&numT&}&
&&bool&destroy();&&&//&returns&success&of&attempt&to&destroy&EnemyTarget&object&
&&static&size_t&numT&&&&&&&&&&&&&&&//&object&counter&
//&class&statics&must&be&defined&outside&the&&
//&initialization&is&to&0&by&default&
size_t&EnemyTarget::numT&
在这个例子中,&静态数据成员numTargets就是用来计数产生的对象个数的.&
另外,&在设计类的多线程操作时,&由于POSIX库下的线程函数pthread_create()要求是全局的,&普通成员函数无法直接做为线程函数,&可以考虑用Static成员函数做线程函数.&
==============================
静态类成员包括静态数据成员和静态函数成员两部分。&&
&&&&&&一&&&静态数据成员:&&
&&&&&&类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:&&
&&&&&&&&1.静态数据成员的定义。&&
&&&&&&&&&&&&静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。&&
&&&&&&&&其定义方式与全局变量相同。举例如下:&&
&&&&&&&&xxx.h文件&&
&&&&&&&&class&&&base{&&
&&&&&&&&&&&&private:&&
&&&&&&&&&&&&static&&&const&&&int&&&_i;//声明,标准c++支持有序类型在类体中初始化,但vc6不支持。&&
&&&&&&&&};&&&&
&&&&&&&&xxx.cpp文件&&
&&&&&&&&const&&&int&&&base::_i=10;//定义(初始化)时不受private和protected访问限制.&&
&&&&&&&&注:不要试图在头文件中定义(初始化)静态数据成员。在大多数的情况下,这样做会引起重复定义这样的错误。即使加上#ifndef&&&#define&&&#endif或者#pragma&&&once也不行。&&
&&&&&&&&2.静态数据成员被类的所有对象所共享,包括该类派生类的对象。即派生类对象与基类对象共享基类的静态数据成员。举例如下:&&
&&&&&&&&class&&&base{&&
&&&&&&&&&&&&&&public&&&:&&
&&&&&&&&&&&&&&static&&&int&&&_//声明&&
&&&&&&&&};&&
&&&&&&&&int&&&base::_num=0;//静态数据成员的真正定义&&
&&&&&&&&class&&&derived:public&&&base{&&
&&&&&&&&};&&
&&&&&&&&main()&&
&&&&&&&&{&&
&&&&&&&&&&&&base&&&a;&&
&&&&&&&&&&&&derived&&&b;&&
&&&&&&&&&&&&a._num++;&&
&&&&&&&&&&&&cout&&"base&&&class&&&static&&&data&&&number&&&_num&&&is"&&a._num&&&&
&&&&&&&&&&&&b._num++;&&
&&&&&&&&&&&&cout&&"derived&&&class&&&static&&&data&&&number&&&_num&&&is"&&b._num&&&&
&&&&&&&&}&&
&&&&&&&&//&&&结果为1,2;可见派生类与基类共用一个静态数据成员。&&
&&&&&&3.静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以。举例如下:&&
&&&&&&class&&&base{&&
&&&&&&&&&&public&&&:&&
&&&&&&&&&&static&&&int&&&_staticV&&
&&&&&&&&&&int&&&_&&
&&&&&&&&&&void&&&foo1(int&&&i=_staticVar);//正确,_staticVar为静态数据成员&&
&&&&&&&&&&void&&&foo2(int&&&i=_var);//错误,_var为普通数据成员&&
&&&&&&};&&&&&&&&&&
&&&&4.★静态数据成员的类型可以是所属类的类型,而普通数据成员则不可以。普通数据成员的只能声明为&&所属类类型的&&&指针或引用。举例如下:&&
&&&&&&class&&&base{&&
&&&&&&&&&&public&&&:&&
&&&&&&&&&&static&&&base&&&_object1;//正确,静态数据成员&&
&&&&&&&&&&base&&&_object2;//错误&&
&&&&&&&&&&base&&&*pO//正确,指针&&
&&&&&&&&&&base&&&&mO//正确,引用&&
&&&&&&};&&
&&&&5.★这个特性,我不知道是属于标准c++中的特性,还是vc6自己的特性。&&
&&&&&&&&静态数据成员的值在const成员函数中可以被合法的改变。举例如下:&&
&&&&&&class&&&base{&&
&&&&&&&&&&public:&&
&&&&&&&&&&base(){_i=0;_val=0;}&&
&&&&&&&&&&mutable&&&int&&&_i;&&
&&&&&&&&&&static&&&int&&&_staticV&&&&
&&&&&&&&&&int&&&_&&
&&&&&&&&&&void&&&test()&&&const{//const&&&成员函数&&
&&&&&&&&&&&&&&&&_i++;//正确,mutable数据成员&&
&&&&&&&&&&&&&&&&_staticVal++;//正确,static数据成员&&
&&&&&&&&&&&&&&&&_val++;//错误&&
&&&&&&&&&&}&&
&&&&&&};&&
&&&&&&int&&&base::_staticVal=0;&&
&&二,静态成员函数&&
&&&&&&静态成员函数没有什么太多好讲的。&&
&&&&&&1.静态成员函数的地址可用普通函数指针储存,而普通成员函数地址需要用&&&类成员函数指针来储存。举例如下:&&
&&&&&&&&&&class&&&base{&&
&&&&&&&&&&&&&&static&&&int&&&func1();&&
&&&&&&&&&&&&&&int&&&func2();&&
&&&&&&&&&&};&&
&&&&&&&&&&int&&&(*pf1)()=&base::func1;//普通的函数指针&&
&&&&&&&&&&int&&&(base::*pf2)()=&base::func2;//成员函数指针&&
&&&&&&2.静态成员函数不可以调用类的非静态成员。因为静态成员函数不含this指针。&&
&&&&&&3.静态成员函数不可以同时声明为&&&virtual、const、volatile函数。举例如下:&&
&&&&&&&&class&&&base{&&
&&&&&&&&&&&&&&virtual&&&static&&&void&&&func1();//错误&&
&&&&&&&&&&&&&&static&&&void&&&func2()&&&//错误&&
&&&&&&&&&&&&&&static&&&void&&&func3()&&&//错误&&
&&&&&&&&};&&
&&最后要说的一点是,静态成员是可以独立访问的,也就是说,无须创建任何对象实例就可以访问。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。16:39 提问
C++中1e-30是什么意思
C++中1e-30是什么意思。在网上查不知道是什么意思?比如15+1e-30是什么意思
按赞数排序
建议你看看这篇文章。
任意一个二进制浮点数V可以表示成下面的形式:
  V = (-1)^s×M×2^E
  (1)(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。
  (2)M表示有效数字,大于等于1,小于2。
  (3)2^E表示指数位。
1e-30就是10的-30次方
power(10, -30);
3359关注|1104收录
其他相似问题C++ - _T含义 C++语言中“_T”是什么意思
&_T(&Hello&)是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。
Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。
如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把&Hello&字符串以UNICODE方式保存。
_T和_L的区别在于,_L不管你是以什么方式编译,一律以UNICODE方式保存。
---------------------------------------------------------------------------------------------------------------
1\C++语言中&_T&是什么意思?
Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
如果将来你不打算升级到unicode,那么也不需要_T,
---------------------------------------------------------
_t(&hello world&)
在ansi的环境下,它是ansi的,如果在unicode下,那么它将自动解释为双字节字符串,既unicode编码。
这样做的好处,不管是ansi环境,还是unicode环境,都适用。
2\请问在++中的字符串_T(&ABC&)和一个普通的字符串&ABC&有什么区别。
表示如果定义了unicode
它表示 L&ABC&,每个字符为16位,宽字符字符串
---------------------------------------------------------
if not UNICODE
它就是ascii的&ABC&,每个字符为8位
&ABC&就是指ascii字符串&ABC&
----------------------------------------------------------
#ifdef _UNICODE
#define _T(&ABC&) L&ABC&
#define _T(&ABC&) &ABC&
----------------------------------------------------------
_T(&ABC&)中的一个字符和汉字一样,占两个字节,而在&ABC&中,英文字符占一个字节,汉字占两个字节
---------------------------------------------------------------------------------------------------------------
_T在tchar.h头文件中定义了:
#define __T(x) L ## x
#define _T(x) __T(x)
-- ##在宏里面相当于连接符,把前后两个字符串连在一起作为一个字符串。
以下来自网络:
#define Conn(x,y) x##y
#define ToChar(x)
#define ToString(x) #x
x##y表示什么?表示x连接y,举例说:
int n = Conn(123,456); 结果就是n=123456;
char* str = Conn(&asdf&, &adf&)结果就是 str = &asdfadf&;
怎么样,很神奇吧
再来看,其实就是给x加上单引号,结果返回是一个const char。举例说:
char a = ToChar(1);结果就是a='1';
做个越界试验char a = ToChar(123);结果是a='3';
但是如果你的参数超过四个字符,编译器就给给你报错了!error C2015: too many characters in constant :P
最后看看#x,估计你也明白了,他是给x加双引号
char* str = ToString(123132);就成了str=&123132&;
先说宽字符常量,它是用来支持某些语言的字符集合,如汉语、日语,这些语言中的某些字符不能用单个字符表示。于是想对应的就有了宽字符串咯!
L -& Long 对于宽字符傅值是L字符串 2个字节存储
因为ASCII是完全的美国标准无法有效表示其他国家语言符号
后来引入了活动页影射效果不甚理想
最后决定2字节宽字符编码 65535个字符足于应付世界上各个国家的语言
中日韩字符集好像被编在 0X4FFF -- 0X9FFF 之间
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'在c++中|=是什么意思_百度知道}

我要回帖

更多关于 在c语言中是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信