int p[10];p指针常量
int *p;变量
int p[10][10]; 特点:p=*p=p[0],而p+1=p[1],p[0]+1=p[0][1];
int *p[10]; 特点: p[0]装的指针;指针数组
int (*p)[10]; 数组指针,可以=p[][];
int **p;可以指向int *p[10];但是不能指向int p[10][10]
int **p初始化为:p=new int *[10];
p[0] =new int;
p[1] = *(p+1) 而不是*p+1。
线程死掉,代码没崩掉,有可能是AB锁相互锁住了
编译代码时候,需要注意编译头文件的先后顺序,以及依赖关系。2.最好在.cpp文件中调用头文件的东西,头文件之间不要相符调用(class容易出现头文件之间的调用,可以使用void *在头文件,在CPP中进行转换,这样头文件也能避免相互调用)。
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
toupper(将小写字母转换成大写字母)
tolower(将大写字母转换成小写字母)
7、关于虚函数,纯虚函数。实现在继承类中。
目的是为了使用一个对象的基类来调用不同的继承类的方法,是为了调用的简洁性。
8、关于继承:class A{};class B: public A{};(1)定义一个新的B对象,可以转换为A对象,还可以再从A转换回来。(2)但是如果定义一个A对象,可以转换为B对象,但是此时操作到B对象的成员变量,将在释放空间时崩溃。从基类转换到子类时,一定要是(1)种情况。
9、HEAP[ScreenBeamCMS.exe]: HEAP: Free Heap block 78452f0 modified at 7845958 after it was freed
出现这个错误不定地方,原因应该是分配内存释放内存后对该内容赋值了,我出现的地方时在new的时候,new的时候内核发现该空间已经被占用,报错。
10.
#include <stdio.h>#include <pthread.h>
#include <iostream>
using namespace std;
class surApp
{
public:
surApp(){printf("%s,%d\n",__FILE__,__LINE__);pthread_create(&myThreadID, NULL, myThread, (void *)this);}
private:
static void *myThread(void *inpD)
{
printf("%p,%s,%d\n",inpD,__FILE__,__LINE__);
}
static surApp tApp;
static surApp *pApp;
static int dataApp;
pthread_t myThreadID;
};
surApp surApp::tApp;
surApp *surApp::pApp = NULL;
int surApp::dataApp = 1;
int main()
{
printf("%s,%d\n",__FILE__,__LINE__);
}
执行后:
class initmain.cpp,8
main.cpp,19
第一:tApp是静态,对外可以直接使用surApp::tApp,surApp surApp::tApp;是定义该变量,会执行其构造函数。
第二:main调用前要初始化全局变量,而surApp surApp::tApp;将先执行。
第三:pthread_create(&thread_id_my, NULL, thread_process_my, (void *)this);如果线程是类的成员函数,需要将thread_process_my设置为static。