问题描述
这是一个正在创建的基本直方图,但我的问题是 TH1F *hist=new TH1F("hist","Histogram",100,100); 我知道指针有助于存储指向对象的地址,而构造函数有助于将值输入到类中的对象,但是这一行发生了什么?是否创建了一个指针并将其定义为构造函数? “新”有什么用?
// Creating a histogram
void tut1()
// Void functions do not return values,simply prints a message so I assume our message here is the histogram,histograms display values but they are not themselves not values
{
TH1F *hist=new TH1F("hist",100);
// This is just a constructor
// TH1F is a inherited class from the base class TH1
//(the name of the histogram,the title of the histograms,number of bins,start of x axis,and ending paramater of x axis)
// Here we are accessing TH1F the capital F is for floats and we use this to use 1D histograms
// To Fill the histogram we use
hist->Fill(10);
hist->Fill(40);
// Add titles for the axis's
hist->GetXaxis()-SetTitle("X Axis");
hist->GetYaxis()-SetTitle("Y Axis");
TCanvas *c1 = new TCanvas();
hist->Draw();
// Tcanvas is used to draw our plot it is the window that is used to display our image
}
解决方法
变量 hist
是指向类型 TH1F
的指针。它被赋值给由构造函数创建的 TH1F
的新实例。
我注意到您的程序中缺少的一件事是相应的 delete
语句。