1.定义成了const之后的类

#include <iostream>
class area
{
public:int x;int y;mutable int z;  //不受const约束的类成员area() :x(10), y(10), z(2){}void printxy()const  //不可以访问类中局部变量{z = z + 1;std::cout << x << "  " << y  << "  " <<  z  << "\n";}void add(int a){x += a;y -= a;}void go()const{}
protected:
private:
};void main()
{//const对象不可以引用非const成员函数//不可以改变内部变量,mutable例外const area * const p = new area;p->go();//p->add();//p = new area;//指针可以改变const area area1;area1.printxy();//area1.add(1);area1.go();//area1.x = 10;//这一句说明当把类定义成const之后,定义成了mutable的值z可以修改area1.z += 4;area1.printxy();std::cin.get();
}

运行结果:

2.NULL和nullptr

#include <iostream>void go(int num)
{std::cout << "gonum" << std::endl;
}void go(void *p)
{std::cout << "gop" << std::endl;
}//C++中的NULL的类型是int ,0
void main()
{//C++是强类型,严格的类型检查void *p = nullptr;//C++的nullgo(p);   //结果为gop  //根据类型来处理go(NULL);  //会调用go(int num)  结果为gonumgo(nullptr);  //结果为gopstd::cin.get();
}

3.QT中button和Line_edit操作相关的

QString  str1=ui->lineEdit->text();
QString  str2=ui->lineEdit_2->text();
QString str3=str1+str2;
ui->lineEdit_3->setText(str3);QString  str1=ui->lineEdit->text();//获取文本
QString  str2=ui->lineEdit_2->text();
int  db1=str1.toInt();
int  db2=str2.toInt();//转换
int  db3=db1+db2;
QString str3;
str3.setNum(db3);//函数可以重载,很多个类型
ui->lineEdit_4->setText(str3);//设置文本将QString转换成为字符串的是:str3.toStdString().c_str;

4.new delete和malloc,free相关

#include<iostream>
#include <stdlib.h>class myclassA
{
public:myclassA(){std::cout << "create\n";}~myclassA(){std::cout << "delete\n";}
protected:
private:
};void main()
{//new delete自动调用构造析构myclassA *p = new myclassA;delete p;//只会分配内存,释放内存,不会对内存进行操作myclassA *p1 = (myclassA *)malloc(sizeof(myclassA));free(p1);std::cin.get();
}

案例2

</pre><pre class="cpp" name="code">#include<iostream>class myclass
{
public:int x;int y;
public:myclass(int a, int b) :x(a), y(b){std::cout << "构造哦" << std::endl;}myclass(){}~myclass(){std::cout << "销毁哦" << std::endl;//}public:void printxy();
protected:
private:
};
void myclass::printxy()
{std::cout << x << "  " << y << std::endl;
}
myclass class1(10, 11);//全局变量优先main函数
myclass class2(11, 12);void change1(myclass **pp)
{*pp = &class2;
}
void change2(myclass * &p)
{p = &class1;
}void  main22()
{myclass *p = &class1;p->printxy();change1(&p);p->printxy();change2(p);p->printxy();std::cin.get();
}void main11()
{//myclass *p = new myclass;myclass *p(new myclass(10, 9));//构造函数初始化p->printxy();myclass  class1(20, 1);myclass ** pp = &p;//二级指针存储一级指针的地址(*pp)->printxy();//一级类指针(**pp).printxy();//0级类指针std::cin.get();
}void main122()
{//myclass *p = (myclass *)malloc(sizeof(myclass));//free(p);myclass *p = new myclass;delete p;std::cin.get();
}

5.创建对象数组

#include "dialog.h"
#include <QApplication>class morewindow
{
public:Dialog *p[5];morewindow(){for(int i=0;i<5;i++){p[i]=new Dialog;p[i]->show();p[i]->move(i*100,i*100);}}~morewindow(){for(int i = 0;i<5;i++){delete p[i];}}Dialog * operator [](int i){return p[i];}
};int main(int argc, char *argv[])
{QApplication a(argc, argv);morewindow more1;more1[3]->hide();//重载下标return a.exec();
}

6.创建对象数组

#include "mainwindow.h"
#include <QApplication>
#include<QDebug>class morewindows
{
public:MainWindow *p[5];//指针数组,每一个元素是指针morewindows(){for(int i=0;i<5;i++){p[i]=new MainWindow;p[i]->show();p[i]->move(i*100,i*100);}}~morewindows(){for(int i=0;i<5;i++){delete p[i];}}
};class morewindowss
{
public:MainWindow *p[5][4];morewindowss(){for(int i=0;i<5;i++ ){for(int j=0;j<4;j++){p[i][j]=new MainWindow;p[i][j]->show();p[i][j]->move(i*130,j*130);}}}~morewindowss(){for(int i=0;i<5;i++ ){for(int j=0;j<4;j++){delete p[i][j];}}}
};//int a[5]   int *p=a;   int *p= new int[5];
//int *a[5]   int **p=a  int **p=new  (int *)[5];
//int  *a[3][5]
//int * (*p)[5]class morewindowsss
{
public:MainWindow  **p;//二级指针morewindowsss(){// p= (MainWindow **)malloc(sizeof(MainWindow *)*5);}void init(int num){p= new MainWindow * [5];//new的时候类型不需要加上括号for(int i=0;i<5;i++){p[i]=new MainWindow;p[i]->show();p[i]->move(num*100,i*100);}}void move(int x,int y){for(int i=0;i<5;i++){p[i]->move(x*100,y*100);}}morewindowsss  & operator = (morewindowsss const & more)//自己写的深拷贝{qDebug()<<"shen";this->p = new MainWindow * [5];for(int i=0;i<5;i++){p[i]=new MainWindow;p[i]->show();p[i]->move(500,i*100);}return *this;}~morewindowsss(){for(int i=0;i<5;i++){delete p[i];}delete [] p;// free(p);}
};class morewindowssss
{
public:// MainWindow *p[5][4];//二维数组,每一个元素都是指针MainWindow  **pA;//二级指针MainWindow *(*p)[4];//指向二维指针数组的指针morewindowssss(){pA=new  MainWindow  *[20];//一维数组p=(MainWindow *(*)[4])  pA;for(int i=0;i<5;i++ ){for(int j=0;j<4;j++){p[i][j]=new MainWindow;p[i][j]->show();p[i][j]->move(i*130,j*130);}}}~morewindowssss(){for(int i=0;i<5;i++ ){for(int j=0;j<4;j++){delete p[i][j];}}delete [] pA;}
};int main(int argc, char *argv[])
{QApplication a(argc, argv);morewindowsss   more1;more1.init(1);// more1.move(1,2);morewindowsss   more2;//拷贝构造more2=more1;//赋值// morewindowsss   more2(more1);more2.move(3,4);return a.exec();
}
 

const对象,NULL和nullptr,C++中创建对象数组相关推荐

  1. Java中创建对象数组

    1.对象数组的概念: 如果一个数组中的元素是对象类型,则称该数组为对象数组.当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象. 2.对象数组的定义和使用: 对 ...

  2. const对象不能调用非const成员函数

    在C++中,可以用const来定义一个const对象,但const对象不可以调用类中的非const成员函数 原因 引发原因:: 由调用成员函数时隐式传入的当前对象的this指针引起. 非const成员 ...

  3. C语言nullptr错误,c/c++中的NULL,nullptr,0

    NULL,nullptr与0 0 NULL C语言中 C++中 隐式类型转换 nullptr 预处理中的条件编译语句 0 在我们的程序中,单纯一个0,在不同的类型中有着不同的意思 0,是一个空字符常量 ...

  4. java 循环list 对象_java计算list集合中重复对象的次数及for循环内外创建对象

    我的需求:计算字符串集合中"数值"出现的次数,然后在for循环中计算"数值"及出现的次数 解决方案: 1.使用collections类中的frequency(集 ...

  5. java null 对象吗_java中new一个对象和对象=null有什么区别

    原创:转载请注明出处 今天在写代码时,遇到一个问题,特此进行记录. for (ProfileDto profileDto : profile) { // Profile resProfile=null ...

  6. java中创建对象的一般格式是什么_Java零基础快速入门|对象的创建和使用(下)...

    本篇文章主要内容:构造方法Constructor 空指针异常 当实例变量是一个引用 方法调用时参数的传递问题 难点解惑 构造方法Constructor 什么是构造方法?构造方法怎么定义?构造方法怎么调 ...

  7. C++中NULL和nullptr的区别

    在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有 ...

  8. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  9. Java 中关于String的空对象(null) ,空值(empty),空格 的总结

    Java 中关于String 对象的空对象(null), 空值(""),空格(" ")对于很多人来说很模糊,下面将分别介绍一下他们的用法:定义,判断,运算. 首 ...

最新文章

  1. NOIp2018集训test-9-7(pm) (联考一day1)
  2. Python中的支持向量机SVM的使用(有实例有源码)
  3. PyODPS 中使用 Python UDF
  4. python 递归函数 内存底层_Python基础篇【第八篇】:剖析递归函数
  5. Adobe Flash CS4 序列号-Adobe Dreamweaver CS4 序列号
  6. 公共邮箱,共享邮箱,免费邮箱,匿名邮箱,临时邮箱,免费收信
  7. 70行代码让你远离颈椎病,致所有的程序猿们
  8. docker 安装 Nginx 并配置反向代理
  9. 分析XBrowser地址栏使用案例
  10. C/C++ 混合编译 C++中的extern “C“
  11. 大学英语综合教程二 Unit 8 课文内容英译中 中英翻译
  12. 手把手带你抓取智联招聘的“数据分析师”岗位!
  13. 如何解决因涉及不良信息导致QQ互联审核不通过?
  14. calcHist的使用
  15. 什么叫资讯,资讯是什么?
  16. 中国阀门喷射式喷墨打印机市场深度研究分析报告
  17. 手把手教你从头开始搭建友善之臂ARM-tiny4412开发环境(史上最详细!!)
  18. 图文编排之HTML身份介绍浮动(图片换成自己的就行啦)
  19. python进阶练习题:馏分类【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  20. ZOJ 3591 Nim (NIM博弈+统计

热门文章

  1. Spring Boot 集成数据库
  2. OpenCASCADE:读取和写入 IGES
  3. OpenCASCADE:OCAF 使用
  4. boost::phoenix::lambda相关的测试程序
  5. boost::mpl模块实现print相关的测试程序
  6. boost::hana::append用法的测试程序
  7. boost::log模块实现格式化程序流的测试程序
  8. boost::gil::ColorBaseConcept用法的测试程序
  9. VTK:绘图之FunctionalBagPlot
  10. VTK:图表之SelectedVerticesAndEdgesObserver