1. classes defined as const
#include <iostream>class area{public:int x;int y;mutable int z; class member without const constraint area (): X (Ten), Y (+), Z (2) {}void printxy () const //cannot access local variables in class {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 object cannot refer to non-const member function//cannot change internal variable, mutable exception const area * Const P = New Area;p->go ();//p->add ();//p = new area;//pointer can change const area area1;area1.printxy ();//area1.add (1); Area1.go () //area1.x = 10;//This sentence indicates that when the class is defined as const, the value defined as mutable z can be modified area1.z + = 4;area1.printxy (); Std::cin.get ();}
Operation Result:
2.NULL and the nullptr
#include <iostream>void go (int num) {std::cout << "gonum" << Std::endl;} void Go (void *p) {std::cout << "GOP" << Std::endl;} The type of NULL in C + + is int, 0void main () {//c++ is strongly typed, strict type check void *p = Nullptr;//c++ Nullgo (p); The result is a GOP //Processing Go (NULL) based on the type; The Go (int num) result is called Gonumgo (nullptr); The result is gopstd::cin.get ();}
3.QT in Button and the Line_edit operation-related
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 ();//Get Text QString str2=ui->lineedit_2->text (); int db1= Str1.toint (); int db2=str2.toint ();//convert int db3=db1+db2; QString Str3;str3.setnum (DB3);//functions can be overloaded, many types of ui->lineedit_4->settext (STR3);// The setting text converts qstring into a string: Str3.tostdstring (). C_str;
4.new Delete and the malloc , Free related
#include <iostream> #include <stdlib.h>class myclassa{public:myclassa () {std::cout << "create\n";} ~myclassa () {std::cout << "delete\n";} Protected:private:};void Main () {//new Delete automatically calls the construct destructor Myclassa *p = new Myclassa;delete p;//only allocates memory, frees memory, Does not operate on memory Myclassa *P1 = (Myclassa *) malloc (sizeof (Myclassa)); free (p1); Std::cin.get ();}
Case 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 << "construct Oh" << Std::endl;} MyClass () {}~myclass () {std::cout << "destroy Oh" << std::endl;//}public:void printxy ();p rotected:private:};void MyClass::p Rintxy () {std::cout << x << "" << y << Std::endl;} MyClass Class1 (10, 11);//global variable precedence main function MyClass Class2 (one, one); 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));//constructor initialization p->printxy (); MyClass Class1 (1); m Yclass * * pp = &p;//level two pointer stores the address of the first pointer (*PP)->PRINTXY ();//Class-A pointer (**pp). Printxy ();//0 Class pointer Std::cin.get ();} void main122 () {//myclass *p = (MyClass *) malloc (sizeof (MyClass));//free (P); MyClass *p = new MyClass;d elete P;std::cin.get ();}
5. Creating an array of objects
#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 ();//heavy-duty subscript return A.exec ();}
6. Creating an array of objects
#include "mainwindow.h" #include <QApplication> #include <qdebug>class morewindows{public:mainwindow *p[5 ];//pointer array, each element is a pointer 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;//Level two pointer morewindowsss () {//p= (MainWindow *) ma Lloc (sizeof (MainWindow *)); } void init (int num) {p= new MainWindow * [5];//new type does not need to be bracketed 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)//deep copy written by yourself {Qdebug () << "she n "; 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];//Two-dimensional array, each element is a pointer MainWindow **pa;//level two pointer MainWindow * (*P) [4];//Pointer to a two-dimensional pointer array Morewindowssss () {pa=new MainWindow *[20];//one-dimensional array 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); Morewindowsss more2;//Copy Construction more2=more1;//Assignment//morewindowsss more2 (More1); More2.move (3,4); return a.exec ();}