我有一个处理继承的任务.
我有一个Employee()基类,Manager()和Intern()继承自.
我的导师给了我们以下指示:
在main()中声明一个staff指针数组并将它们初始化为以下记录:
Manager("IT", 100, "MF1", "ML1")
Manager("HR", 50, "MF2", "ML2")
Intern("SIUE", 0, "IF1", "IL1")
Intern("SLU", 0, "IF2", "IL2")
Run Code Online (Sandbox Code Playgroud)
然后我必须循环并显示数组.他提供的输出作为示例显示必须已调用Manager()和Intern()toString()方法,因为输出了与子类相关的特定信息.但是,在访问数组时,我得到的是员工指针,而不是指向孩子的指针.我附上了他提供的截图.

我不确定我应该怎么做到这一点.
这是我的员工阵列声明:
Employee * staff = new Employee[4];
Run Code Online (Sandbox Code Playgroud)
我不能存储指向我不认为的Manager()对象的指针.除非有某种程度上我可以扇着这个:
staff[0] = new Manager("IT", 100, "MF1", "ML1");
Run Code Online (Sandbox Code Playgroud)
看来我唯一的选择是做这样的事情(我怎么能在一行中做到这一点?):
Employee * e = new Manager("IT", 100, "MF1", "ML1");
staff[0] = *e;
Run Code Online (Sandbox Code Playgroud)
但显然现在当我这样做:
cout << staff[0].toString();
Run Code Online (Sandbox Code Playgroud)
我将获得基类Employee()toString()方法,而不是子类.
以下是Employee()和Manager()的以下两个类定义,以防它们相关:
class Employee{
private:
int eid;
string firstName;
string lastName;
public:
Employee();
Employee(int eid, string fname, string lname);
void setEID(int eid);
void setFirstName(string fname);
void …Run Code Online (Sandbox Code Playgroud) 我正在做一个左外连接,只返回匹配的行,就像它是一个内连接.
为简化数据,我的第一个表(ROW_SEG)或左表看起来像这样:
ASN | DEPT NO
-----------------------
85 | 836
86 | null
87 | null
Run Code Online (Sandbox Code Playgroud)
我的第二个表(RF_MERCHANT_ORG)有DEPT_NAME,还有其他一些东西,当我有一个dept号时我想得到它.
DEPT NO | DEPT_NAME
-----------------------
836 | some dept name 1
837 | some dept name 2
838 | some dept name 3
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在我加入之后我只得到1排,因为ASN 85有DEPT NO.
...omitting a bunch of SQL for simplicity
, ROW_SEG AS (
SELECT *
FROM VE_SI_EC_OI
WHERE ROW_NUM BETWEEN 1 AND 1000 -- screen pagination, hardcoding values
)
-- ROW_SEG has a count of 1000 now
, RFS_JOIN …Run Code Online (Sandbox Code Playgroud) 我有一个简单的类项目,我正在进行一些表单验证.我们必须使用一些基本的正则表达式来验证输入.我在外部js文件中有这个代码.
我有一个捕获onsubmit事件的函数,并返回验证函数的值是否继续回发.
问题是当我调用RegEx.test()方法时,我的验证函数停止并返回,并且回发无意中进行.如果我使用"new RegEx()"创建一个正则表达式对象,同样的事情也会发生.我迷失了为什么.
这是我的代码:
$(document).ready(function() {
// onsubmit event
$('form').submit(
function() {
return validation();
}
);
// form validation
function validation() {
resetErrors();
//variables
var validates = true;
var errorString = "";
//var isEmail = new RegEx('^.+@.+\..+$'); // function stops here if line is uncommented and kicks off the postback?
//alert("harro new regex?"); // does not run if above line is uncommented
var isEmail = "/^.+@.+\..+$/"; // this doesn't stop the function
alert("harro isEmail direct regex string assignment"); // …Run Code Online (Sandbox Code Playgroud) 我想我需要第二双眼睛.
我有一些调用php文件的ajax,它正在返回json.一切正常.然后我警告我返回的数据元素用于测试目的.在这样做,我缩小了我的功能是没有被调用.
<?php
// database functions
$response = array();
$count = 1;
// connect to db
function connect() {
$response['alert'] = 'connect ran'; // does not get alerted
}
// loop through query string
foreach ($_POST as $key => $value) {
switch ($key) {
case 'connect':
$response['alert'] = 'case ran';
if ($value == 'true') {
$response['alert'] = 'if ran'; // this is what gets alerted, should be overwriten by 'connect ran'
connect(); // function call does not work?
} else …Run Code Online (Sandbox Code Playgroud) 我试图在C++中将函数作为参数传递.我一直收到LNK2019未解决的外部符号错误.
我已经读过这些,并且已经修复了这些,但我无法弄清楚我在这里做错了什么.
我的显示函数中的TreeItemType引用似乎发生了错误.
include "PhoneBook.h"
include "PhoneEntry.h"
include "bst.h"
using namespace std;
using namespace p04NS;
void display(TreeItemType& item);
int main() {
PhoneEntry test = PhoneEntry("first", "last", "618-580-0680");
bst * tree = new bst();
TreeItemType foo = TreeItemType(); // test type reference, no error
tree->insert(test);
tree->inorder(display);
system("pause");
return 0;
}
void display(TreeItemType& item){
cout << "hello worlds!";
}
Run Code Online (Sandbox Code Playgroud)
TreeItemType typedef在此处定义.
namespace p04NS {
typedef PhoneEntry TreeItemType;
typedef string KeyType;
// Pointer to a function that can be used to …Run Code Online (Sandbox Code Playgroud)