C++ 中的基本语法

作者在 2008-10-23 14:15:40 发布以下内容
  C++ 类class中定义的变量和C结构体struct中的变量一样
也不能赋初值,而把其赋成 0 是纯虚函数的特性
也就是不存在纯虚变量,因此不可
 
class z{
   int a = 0; 或者 int a = 1; 
}
而只可
class z{
   int a; 
}
基础知识 | 阅读 5665 次
文章评论,共6条
vfdff(作者)
2008-10-23 19:14
1
在别的类中给静态变量重新赋值的时候出现错误&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;public&nbsp;&nbsp;class&nbsp;&nbsp;Global&nbsp;&nbsp;: System.Web.HttpApplication&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;public&nbsp;&nbsp;&nbsp;static&nbsp;&nbsp;&nbsp;string&nbsp;&nbsp;&nbsp;test&nbsp;&nbsp;= “error”;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;<br />
<br />
.语法错误:&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;Global.test&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&quot;aaaaaaaaaaa&quot;;//错误“类、结构或接口成员声明中的'='无效”&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;//这种语句只能写在函数中,如下:&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;public&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;&nbsp;Page_Load()&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;Global.test&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&quot;aaaaaaaaaaa&quot;;//错误“类、结构或接口成员声明中的'='无效”&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;}
vfdff(作者)
2008-10-23 19:18
2
静态函数在类外面和类里面最大的不同是他们的名字域是不同的。&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;如果你想访问类里面的静态数据成员或函数那就必须使用类内的静态函数。&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;而且从OOP的观点来看,如果函数属于这个类,那就应该把他声明在类内。&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;callback必须为静态函数,因为类的非静态成员会在编译的时候自动加入一个&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;参数this, 这就和系统要求的函数不一样了,因此不能通过。
vfdff(作者)
2008-10-23 21:57
3
int WINAPI WinMain(<br />
&nbsp;&nbsp;HINSTANCE hInstance,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// handle to current instance<br />
&nbsp;&nbsp;HINSTANCE hPrevInstance,&nbsp;&nbsp;// handle to previous instance 要求是同一个程序执行的不同实例,但是在win32全使用NULL,在以前16位机上只有第一次运行不为NULL,这样可以节约一些资源<br />
&nbsp;&nbsp;LPSTR lpCmdLine,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // command line<br />
&nbsp;&nbsp;int nCmdShow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// show state<br />
)
vfdff(作者)
2008-10-24 00:15
4
C 语言的结构体中不能定义函数(: '&lt;Unknown&gt;' : function cannot be member of struct 'Point'),但是C++ 可以<br />
<br />
注意:并不是说struct 就是C,而class 就是c++<br />
我们确实可以看到代码:<br />
#include &lt;iostream.h&gt;<br />
struct Point<br />
{<br />
&nbsp;&nbsp;&nbsp;&#160;int x;<br />
&nbsp;&nbsp;&nbsp;&#160;int y;<br />
&nbsp;&nbsp;&nbsp;&#160;void output()<br />
&nbsp;&nbsp;&nbsp;&#160;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;x&lt;&lt;endl&lt;&lt;y&lt;&lt;endl;<br />
&nbsp;&nbsp;&nbsp;&#160;}<br />
<br />
};<br />
<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&#160;Point pt;<br />
&nbsp;&nbsp;&nbsp;&#160;pt.x = 4;<br />
&nbsp;&nbsp;&nbsp;&#160;pt.y = 5;<br />
&nbsp;&nbsp;&nbsp;&#160;pt.output();<br />
}<br />
被保存成Point.cpp是用VC6编译不会由问题<br />
但是保存成Point.c是用VC6编译则问题<br />
提示:('&lt;Unknown&gt;' : function cannot be member of struct 'Point'),<br />
所以说struct也可以是C++的
vfdff(作者)
2008-10-24 00:57
5
class Point<br />
{<br />
public:<br />
&nbsp;&nbsp;&nbsp;&#160;int x;<br />
&nbsp;&nbsp;&nbsp;&#160;int y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void output(int x,int y)<br />
&nbsp;&nbsp;&nbsp;&#160;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=x;y=y;<br />
&nbsp;&nbsp;&nbsp;&#160;}<br />
}<br />
上面的函数对x,y修改无效,但是使用<br />
&nbsp;&nbsp;&nbsp;&#160;void output(int x,int y)<br />
&nbsp;&nbsp;&nbsp;&#160;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this-&gt;x=x; // this 指针 区分 形参和 类中成员名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this-&gt;y=y;<br />
&nbsp;&nbsp;&nbsp;&#160;}就好了<br />
<br />
当然可以使用<br />
&nbsp;&nbsp;&nbsp;&#160;void output(int a,int b)<br />
&nbsp;&nbsp;&nbsp;&#160;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=a; y=b;<br />
&nbsp;&nbsp;&nbsp;&#160;}<br />
也是可以的,只是使用this 来区分 第一个代码中的x,y <br />
没有 this 的&nbsp;&nbsp;x=x; 其实就是自己对自己赋值(显然x来自同一个作用域)
vfdff(作者)
2008-10-25 17:16
6
类型转化关键是看内存模型 ,强制转化可以骗过编译器,但是执行的时侯可能出错<br />
<br />
定义成虚函数后,子类(派生类)由的调用子类,子类没有调用父类(基类)<br />
<br />
应用必须在定义的时候初始化 int a = 6; int &amp;b = a;(a,b指向同一块内存)
游客请输入验证码
浏览1970521次