随笔2018.4.7(含C++staic静态成员有关内容)


C++:

        早上起来,先看了会儿静态成员的有关内容,尽管昨天看了一下基础知识,但在今天实际动手操作时发现还是有许多小知识点没有真正领会。下面总结一下今天比较模糊的几个地方。

1、静态数据成员的声明与初始化:

    声明格式:例如 static int x;要注意的是静态数据成员的初始化操作必须在类外进行,(格式为int 类名::变量名=?)。

2、静态函数:

    即在普通的成员函数前加static即可,不过静态的成员函数只能访问静态数据成员,对于一般的数据成员其不能访问。

3、静态成员的访问:

    一般静态成员为public类型,此时访问形式有(这时候怎么访问都可以):

    ①对象+圆点形式;

    ②对象+指针箭头形式;

    ③类名::变量名;

    ④在类内访问就不用在前面加对象名、类名之类的了,可以直接访问。

    但如果静态成员为private类型,那么就只能借助成员函数来间接访问(最好用静态函数,不用也不会报错)。

最后,还有今天写的一个日期类:

#include<bits/stdc++.h>
using namespace std;
class Date
{

    public:
        static int sum;
        Date(int year=2018,int month=12,int day=25,int hour=6,int minute=55,int second=1)
        {
            this->year=year;this->month=month;this->day=day,
            this->hour=hour;this->minute=minute;this->second=second;
            sum+=day;
        }
        void set_date(int year,int month,int day,int hour,int minute,int second)
        {
            sum-=this->day;
            this->year=year,this->month=month,this->day=day,
            this->hour=hour,this->minute=minute,this->second=second;
            sum+=day;
        }
        int get_year(){return year;}
        int get_month(){return month;}
        int get_day(){return day;}
        int get_hour(){return hour;}
        int get_minute(){return minute;}
        int get_second(){return second;}
        static int get_sum(){return sum;}
        void display();

    private:

        int year,month,day;
        int hour,minute,second;
};
int Date::sum=0;
void Date::display()
{
    if(year<10)cout<<"0";
    cout<<year<<"-";
    if(month<10)cout<<"0";
    cout<<month<<"-";
    if(day<10)cout<<"0";
    cout<<day<<" ";
    if(hour<10)cout<<"0";
    cout<<hour<<":";
    if(minute<10)cout<<"0";
    cout<<minute<<":";
    if(second<10)cout<<"0";
    cout<<second<<endl;
}
int main()
{
    Date d1;
    d1.display();
    cout<<d1.get_sum()<<endl;
    d1.set_date(2018,12,24,6,55,1);//d1,d2主要想来测试一下静态数据成员的“全局性”;
    d1.display();

    cout<<d1.sum<<endl;
    Date d2(2018,12,26,7,0,0);//
    d2.display();
    cout<<Date::sum<<endl;
}


高数:

    对昨天课后题中的错题以及几个证明题做了一下总结,又有了新的收获。

1、求解空间曲线的切向量问题中的类型3:

    该类型一般的做法是借助雅克比行列式求隐式导来求切向量,这里提供第二种做法:将方程组看做有两个曲面确定的曲线,所以有曲线在某点出的切向量即两个曲面在该点出切平面的交线。

2、小感悟:

        再解有条件的极值最值问题中,有时候我们可以不按照模板,而是采用某个量用其他量表示的方法,这样就转化为了无条件极值问题。其次,这类题目中的变量可能有多个,x,y,z,λ甚至更多。。。这时候我们还是分别对它们求偏导就好了。最后,极值类问题核心还是通过联立偏导数的方程组解导数为零的点。


大物:

一、首先是伽利略的坐标转变换、速度变换、加速度变换;

①、坐标变换:r=r'+ut;

②、速度变换:v=v'+u;(均为矢量)

③、加速度变换:a=a'+a(0);

以速度变换为例说明各量的含义:v表示某点相对于静止坐标系的速度(绝对速度),v'表示该点相对于运动坐标系的速度(相对速度),u 表示静止坐标系于运动坐标系的相对速度(牵连速度)。

注意:上面各个式子均为矢量运算式,并非单纯的数值运算,若求大小,基本形式为√x²+y²。

二、第一节课后题:

    题目做的很不顺手,很多地方不明白,主要区分不开应该是用矢量还是标量运算、其次还有瞬时量与平均量的关系也很模糊。

对完答案再看看吧。。。


猜你喜欢

转载自blog.csdn.net/qq_41661919/article/details/79846008