问题描述
我是 C++ 新手,我正在尝试理解以下 C++ 代码:
头文件:import React,{ useState } from 'react';
const App = () => {
const [NewTaskText,setNewTaskText] = useState('');
const [Tasks,setTasks] = useState(['do a task','samira']);
const addTask = () => {
if (!NewTaskText) return;
setTasks((currentTasks) => {
return [...currentTasks,NewTaskText];
});
setNewTaskText('');
};
const onchangeInput = (e) => {
const value = e.target.value;
setNewTaskText(value);
};
return (
<div className="row">
<form>
<div className="row col s6">
<div className="input-field col s10">
<textarea
id="textarea1"
className="materialize-textarea"
value={NewTaskText}
onChange={onchangeInput}
></textarea>
<label htmlFor="textarea1">What needs to be done ?</label>
</div>
</div>
</form>
<div className="row col s6">
<br></br>
<a className="waves-effect waves-light btn" href="/#">
<i className="material-icons left" onClick={addTask}>
add_circle
</i>
Add
</a>
</div>
<div className="row">
<div className="row col s9">
<ul className="collection with-header">
<li className="collection-header">
<h4>Todo List</h4>
<form>
<div className="input-field">
<input id="search" type="search" required />
<label className="label-icon" htmlFor="search">
<i className="material-icons">search</i>Search
</label>
<i className="material-icons">close</i>
</div>
</form>
</li>
<label>
<li className="collection-item">
<input type="checkBox" />
<span>{Tasks.map((item) => item)}</span>
<span>
<a href="#!" className="secondary-content">
<i className="material-icons">delete</i>
<i className="material-icons">check_circle</i>
</a>
</span>
</li>
</label>
</ul>
</div>
</div>
</div>
);
};
export default App;
arr.h
Cpp 文件:#include <iostream>
using namespace std;
#ifndef ARR_H
#define ARR_H
class arr {
private:
int n;
int *ar;
public:
arr();
arr(int nn,const int *a);
~arr();
const int *Get_ar() const;
};
#endif
arr.cpp
主文件:#include <iostream>
#include "arr.h"
using namespace std;
arr::arr() {
n = 2;
ar = new int[2];
ar[0] = 1;
ar[1] = 2;
}
arr::arr(int nn,const int *a) {
n = nn;
ar = new int[n];
for (int i = 0; i < n; i++) {
ar[i] = a[i];
}
}
const int *arr::Get_ar() const {
return ar;
}
arr::~arr() {
delete [] ar;
}
main.cpp
编译时出现错误:#include <iostream>
#include "arr.h"
using namespace std;
int main()
{
int n = 3;
int *a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
int *get_a = new int[3];
arr A(n,a);
get_a = A.Get_ar();
return 0;
}
。当我用 invalid conversion from 'const int*' to 'int*'
替换 int *get_a
中的 main.cpp
时,它编译得很好。另一方面,如果我从头文件 const int *get_a
和 cpp 文件 const
中的 const int *Get_ar() const
中删除 arr.h
,它编译时不会出错。
我不明白,为什么我在保持代码不变的情况下会出现编译器错误。特别是,我不明白 arr.cpp
到底返回了什么。
如有解释,我将不胜感激。
最好的, 菲尔
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)