公司制作网站需要,百姓网二手拖拉机,怎样做微信推广网站,打广告型的营销网站面试遇到的新知识点 char str[10],只有10个字符的空间#xff0c;但是只能存储9个字符#xff0c;最后一个字符用来存储终止符\0 strlen只会计算\n,不会计算\0
值传递#xff1a;
void test2(char * str)
{str hello\n;
}int main()
{char * str;test2(str);…面试遇到的新知识点 char str[10],只有10个字符的空间但是只能存储9个字符最后一个字符用来存储终止符\0 strlen只会计算\n,不会计算\0
值传递
void test2(char * str)
{str hello\n;
}int main()
{char * str;test2(str);cout str;return 0;
}引用传递
void test3(char ** str)
{*str hello\n;
}int main()
{char * str;test3(str);cout str;return 0;
}只有传变量的地址对变量进行解引用才能够修改变量的值。 空类里面有什么
默认成员函数
1.默认构造
2.拷贝构造
3.赋值运算符
4.移动构造
5.移动赋值
6.析构函数 关于最近的一些面试感受
明显感觉好多岗位都交叉着QT别人问我QT我都答不上来只能说一个信号槽和用QT封装了简单的网页。
感觉拿不出手得好好钻研QT了至少能吹的出来。
c的排序算法快排堆排后面还要继续更新一个归并排序将这三个排序算法掌握基本是够用了
池性组件后面还要更新内存池连接池之类的。
然后把基本的排序和池性组件理清楚边开始学QT边写算法题。目前来看回溯算法算是入门了但是动态规划贪心算法和单调栈还是不清楚争取把这些搞掉。今天开始学习QT历时一个礼拜应该能小有成就吧。
QT
QT Creator的界面介绍 项目的结构 简单的QT程序
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent),lab(new QLabel(hello,this)), ui(new Ui::MainWindow)
{ui-setupUi(this);// 设置标签的位置lab-setGeometry(100,100,200,200);// 设置标签的颜色lab-setStyleSheet(QLabel{background-color:green;color:red});// 设置字体的大小lab-setFont(QFont(楷书,22));
} 信号槽机制
信号(signal)
信号的本质是事件信号展现方式就是函数。当一个事件发生之后则发出一个信号(signal)。
槽(slot)
对信号响应的函数
槽与普通函数的区别
槽函数可以与一个信号关联当信号被发射的时候关联的槽函数被自动执行处理。
信号与槽关联是使用QObject::connect()函数进行实现 connect sender发出信号的对象
signalsender对象的信号
receiver信号接收者
methodreceiver对象的槽函数当检测到sender信号receiver对象调用method方法 信号与槽的连接方式
一个信号可以与另一个信号相连
// 信号一可以触发信号二的发送
connect(object1,SIGNAL(signal1),object2,SIGNAL(signal1));
同一个信号可以和多个槽相连
connect(object1,SIGNAL(signal1),object2,SIGNAL(slot1));
connect(object1,SIGNAL(sIgnal1),object3,SIGNAL(slot2));
同一个槽可以响应多个信号
connect(object1,SIGNAL(signal1),object2,SIGNAL(slot1));
connect(object3,SIGNAL(signal3),object2,SIGNAL(slot1)); 常用连接方案
connect(object1,SIGNAL(signal),object2,SLOT(slot)); 实战
计算圆球体积
头文件
头文件(dialog.h)
#ifndef DIALOG_H
#define DIALOG_H
#include QDialog
// 引入标签命令按钮
#includeqlabel.h
#includeqpushbutton.h
#includeqlineedit.h
class Dialog : public QDialog
{Q_OBJECT
public:Dialog(QWidget *parent nullptr);~Dialog();
private:QLabel *lab1, *lab2;QLineEdit *lEdit;QPushButton *pbt;
// 设置槽函数
public slots:void CalculateCircleV();
};
#endif // DIALOG_H main.cpp
#include dialog.h
#include QApplication
int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;// 设置标题w.setWindowTitle(计算圆球体积);w.show();return a.exec();
} dialog.cpp
#include dialog.h
#includeQGridLayout
const static double PI3.1415;
Dialog::Dialog(QWidget *parent): QDialog(parent)
{// 标签一提示输入lab1 new QLabel(this);lab1-setText(请输入圆球的半径:);// 标签二显示结果lab2 new QLabel(this);
// 创建一个编辑框空间(专门用于接收用户的输入圆球半径的值)lEdit new QLineEdit(this);
// 创建命令按钮pbt new QPushButton(this);pbt-setText(tr(计算圆球体积));
// 表格布局QGridLayout *lay new QGridLayout(this);// 第一行的第一列lay-addWidget(lab1,0,0);// 第一行的第二列lay-addWidget(lEdit,0,1);lay-addWidget(lab2,1,0);lay-addWidget(pbt,1,1);
// 将编辑框信号与槽函数关联只要文本发生改变就会调用槽函数// connect(lEdit, SIGNAL(textChanged(QString)),this,SLOT(CalculateCircleV()));// 将按钮信号与槽函数关联只有点击按钮才会调用槽函数connect(pbt, SIGNAL(clicked()),this,SLOT(CalculateCircleV()));
}
Dialog::~Dialog()
{
}
void Dialog::CalculateCircleV()
{bool isLoop;QString str;QString val lEdit-text();int num val.toInt(isLoop);double result 4.0/3.0*PI*num*num;lab2-setText(str.setNum(result));
}